微炭酸ログ

Ruby や Rails を中心に。

【Rails】Scaffold生成ファイルと対象テーブルの削除

前に似た記事を書きました。

tsubasashida.hatenablog.jp

 

あの時はモデルとテーブルだけの削除でしたが、今度はScaffold生成物を丸ごと削除して、対象のテーブルも削除したいです。

※今回の例ではnittei_infosテーブルとそれを操作する関連ファイルをまとめて削除します。

 

まず、削除コマンド。

$ rails destroy scaffold nittei_info


Running via Spring preloader in process 956
invoke active_record
remove db/migrate/20181101150814_create_nittei_infos.rb
remove app/models/nittei_info.rb
invoke test_unit
remove test/models/nittei_info_test.rb
remove test/fixtures/nittei_infos.yml
invoke resource_route
route resources :nittei_infos
invoke scaffold_controller
remove app/controllers/nittei_infos_controller.rb
invoke erb
remove app/views/nittei_infos
remove app/views/nittei_infos/index.html.erb
remove app/views/nittei_infos/edit.html.erb
remove app/views/nittei_infos/show.html.erb
remove app/views/nittei_infos/new.html.erb
remove app/views/nittei_infos/_form.html.erb
invoke test_unit
remove test/controllers/nittei_infos_controller_test.rb
remove test/system/nittei_infos_test.rb
invoke helper
remove app/helpers/nittei_infos_helper.rb
invoke test_unit
invoke jbuilder
remove app/views/nittei_infos
remove app/views/nittei_infos/index.json.jbuilder
remove app/views/nittei_infos/show.json.jbuilder
remove app/views/nittei_infos/_nittei_info.json.jbuilder

 無事生成ファイルは削除されたようです。

 

データベースを見るとまだテーブルは残っているようです。

テーブル削除用のマイグレーションファイルを作ります。

$ rails g migration drop_nittei_infos

 

Running via Spring preloader in process 1002
invoke active_record
create db/migrate/20181210134953_drop_nittei_infos.rb

 

中身は以下のように編集します。

class DropNitteiInfos < ActiveRecord::Migration[5.2]
def change
drop_table :nittei_infos
end
end

 

マイグレーションファイルを実行します。

$ rails db:migrate


== 20181210134953 DropNitteiInfos: migrating ==================================
-- drop_table(:nittei_infos)
-> 0.0870s
== 20181210134953 DropNitteiInfos: migrated (0.0873s) =========================

 

無事できました。

 

<参考>

tamamemo.hatenablog.com