🥚

Ruby on Railsで特定のマイグレーションファイルを編集する方法

2023/11/07に公開

実装をある程度進めてしまってからDB(データベース)のマイグレーションファイルに修正が必要になった!という経験ありませんか?
私はよくあります。

その度に

$ rails db:migrate:reset

をしてたのですが、DBごと消えてしまうので、働き始めてからはあまり使えなそうです。

でも大丈夫!編集したいマイグレーションファイルを一つだけ選んでmigrateするコマンドがありました!

流れ

1.マイグレーションファイルの状態とIDを確認する
2.特定のマイグレーションファイルをDOWNの状態にする
3.マイグレーションファイルを編集する
4.rails:db:migrateコマンドを実行する

手順

手順1

このコマンドを打つと、現在のマイグレーションファイルの状態(UP/DOWM)や、マイグレーションファイルごとのIDをみることができます。

$ rails db:migrate:status


↑こんな感じに。

手順2

特定のマイグレーションファイルをDOWNにするコマンドはこれです。
(Migration IDには数字が入ります)

$ rails db:migrate:down VERSION=Migration ID

今回は、bookmarksのマイグレーションファイルをDOWNにしたいと思います。
お目当てのマイグレーションファイルのIDをコピーした上で、

$ rails db:migrate:down VERSION=20231030225755

と入力します。
そうすると、bookmarksのStatusがdownになりました!

手順3

マイグレーションファイルを適宜変更してください。

手順4

編集したマイグレーションファイルをUPにします。
ターミナルに

$ rails:db:migrate

と打ってください。

これでマイグレーションファイルの編集が完了!

Discussion