Rails DBに対する命令文3
別に命令文という感じもないのだが注意点
前回の続き。前回も軽く触れたが、マイグレーションファイルを直接いじれるのは一度でもmigrateする前まで。それ以降は処理済み扱いとなり。反映されない。
https://teratail.com/questions/103227
またrollbackで何でも戻る訳ではない
https://dev.mysql.com/doc/refman/5.6/ja/cannot-roll-back.html
具体例で言えば
change_columnで変更した物はrollbackでは戻らない
(ただしupやdownを使えばなんとかなるよう)
ちなみにrollbackで戻るのは1つ前まで STEP ="いくつ戻すか?"をくっつけていっぺんに戻すことは可能
dbごとdropすれば最初からやり直せるかもしれんが、それも大胆過ぎる気はするので、一度migrateしてしまった後はコマンドからadd_column等のマイグレーションファイルを作ってサイドmigrateした方が良さそうだ。
以下の人が丁寧に説明してくれていたので最後に貼っておく
gitにしてもmigrationファイルにしてもどんどん更新していくのは簡単だが元に戻すのはめんどくさいもんだ、と思った。gitはコミットID指定するだけで大体戻ってくれるからまだいいけど、rollbackやresetは結構エラー吐きまくる。
実際、美味いことdb:resetできずにハマってしまった。Loardエラーでrails sすら出来なくなったがgem update --systemでなんとか直るという怖い思いをしたのでメモに残しとく
一般的な作成手順に関してこの説明もわかり易かったのでついでに載せとく
https://pikawaka.com/rails/migration参考元
マイグレーションファイルの作成方法
下記のコマンドによりモデルを作成するとモデルファイルと一緒にマイグレーションファイルが作成されます。
作成されたマイグレーションファイルはdb/migrateフォルダ内に入っています。
この最初に作成されたマイグレーションファイルを編集してテーブルを作成するのが一般的です。
その後、作成したテーブルに変更を加えたりするときはすでにあるマイグレーションファイルを編集するのではなく、新たに別のマイグレーションファイルを作成して変更をするコードを記述します。
その際の新しいマイグレーションファイルを作成するコマンドは下記の通りです。
これをmigrateする前に弄る