【Rails】Scaffold生成ファイルと対象テーブルの削除
前に似た記事を書きました。
あの時はモデルとテーブルだけの削除でしたが、今度は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) =========================
無事できました。
<参考>