【Ruby on Rails】モデルの削除方法
モデルの削除方法
こんにちは。
今回は、モデルの削除方法について記述してみました。
アプリケーションを作成する中で、「必要ないモデルや、モデル名間違って作成してしまった!
モデル名を変更して再作成したい!」
となったときに参考にして頂けると解決するはずです。
バージョン
Rails6.1.4
Ruby2.6.3
本題
例. $rails g model homes を作成してしまった!削除したい!
※rails db:migrateをしていない場合は●の方法
※rails db:migrateをしている場合は1.の方法から削除出来ます。
● rails db:migrateをしていない場合
$rails destroy model モデル名
※rails d model モデル名のようにdestroyを省略形では、削除出来ません。
railsdb:migrateをしている場合
1. データーベースの中の状態を確認する
こんな結果が表示されたら
Status Migration ID Migration Name
--------------------------------------------------
up 20190516135900 Create users
up 20190517140023 Add password digest to users
up 20190607063428 Create homes
※Statusがupのときはモデルを削除してもmigrationには状態が残ったままになるので、のちにrails db:migrateを行なってもエラーが起きてしまう。
migrationから無くす為に、データーベースの状態を元に戻す
$ rails db:rollback ←一つ前の状態のものに戻す
こんな結果が表示される
down 20190607063428 Create homes
※Statusがupになっている状態をdownにすることが出来ます。
モデルを最後に作成したものがdown状態になっています。
また、今回は、モデルと作成して直ぐに削除したい場合を想定して記述しています。down状態になったことを確認して削除する
$ rails destroy model モデル名モデルが削除されているか確認する
$ rails db:migrate:status
$rails db:migrate をする前だったら、一行のコマンドで簡単に削除する事が出来ますが、$rails db:migrate をしてしまうと削除するのにひと手間必要ですね。
今回もご覧頂きありがとうございました。
何かを削除するのにも1回1回調べるのが面倒なので、直ぐ開けるノートにコマンドだけまとめて自分専用にストックしておくと、モデル消す時に時間掛けず消せます。←私は忘れやすいので、Boostnoteにストックしてます。
何か間違いがありましたら、ご指摘宜しくお願い致します。