こんにちは!
チーム開発をしていく中で、マイグレーションに関するコンフリクトが多発したので、マイグレーションの知識を深掘りするためにも記事を書きました!
未実行のmigrationを知りたい...
そんな時に、便利なコマンドがこちらです!
bundle exec rake db:migrate:status
Railsのマイグレーションファイルは、ファイルの作成後、マイグレートを実行して初めてデータベースに変更が反映されます!(rake db:migrate)
開発を進めていく中で、マイグレーションファイルが増えて、どのファイルまでがマイグレートを実行し終えているかターミナルで確認することができます!
マイグレートを実行した後に、修正する手順!
(マイグレートを実行した後に、内容の誤りがあることが分かりました....)
(どのように修正すれば良いでしょうか...?)
(ほほう、2つの方法をご紹介しよう!)
➀
・bundle exec rake db:rollbackを実行して、一度マイグレートされていない状態に戻す。
・マイグレーションファイルを修正する。
・再びrake db:migrateを実行する!
➁
・rails g migrationで新たなマイグレーションファイルを作成する。
・修正箇所を正しい内容に変更するためのマイグレーションファイルを作成する。
・rake db:migrateを実行する!
(これら2つの方法で、修正することが可能じゃ)
マイグレーションファイルによる禁止事項!
(一度実行されたマイグレーションファイルは、次のマイグレートに影響は及ぼさないんですよね?)
(そうじゃ)
(それじゃあ、マイグレート後にファイルを変更したり削除したとしても今のDBに悪影響を及ぼすことはないから、変更したり削除したりしてもいいんですか?)
(それは、けしからん!)
(チーム開発において致命的な不具合が出てしまうんじゃ...)
(どういうことでしょうか?)
(アプリケーションのファイルをデプロイ先にpushし、マイグレートを行なった時に、ローカル環境と違ったDBが出来上がったり、エラーになってしまうんじゃ...)
(コンフリクトなどの原因にもなりかねんから、やってはいけないぞ!)
(分かりました!ありがとうございます!)
以上となります!
最後の章は会話形式でまとめてみました!
その他、マイグレーションに関する見知など教えて頂けると幸いでございます!
コメントお待ちしております!
ご静聴ありがとうございました