0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails マイグレーションファイルの修正方法

Posted at

railsでマイグレーションファイルを戻す方法

スペルミスをしまった時によく使います。

例えばtitleカラムを、titeとスペルミスしました。

そしてすでにマイグレーションファイルはデータベースに反映されてしまっています。このような時にリカバリーする方法です。

マイグレーションファイルがデータベースに適応されている為、修正が出来ない状態になっています。

一度データベース側から「マイグレーションファイルの戻す」必要があり、そのためのコマンドがrails db:rollback(ロールバック)を使います。

rails db:rollback コマンド

マイグレーションファイルを戻すためのコマンドです。ロールバック→修正→マイグレートで修復が可能になります。


rails db:rollback

rails db:migrate:status コマンド

マイグレーションファイルがデータベースに適用されているかどうかを調べるコマンドです。適用されているときはupと表示されるため、修正するためにはロールバックする必要があります。適用されていないときは、downと表示され、そのまま修正や削除が可能です。

rails db:migrate:status

手順

これらを踏まえて進めていきます。

<ターミナル>

rails db:rollback

rails db:rollbackコマンドを実行します。そのあと実行したロールバックが反映
されているか確認をします。

<ターミナル>

rails db:migrate:status

こちらのコマンドで確認をします。すると以下のようにdownに表示が変わったことがわかります。
これでマイグレーションファイルを修正することができます。

<ターミナル>

 Status   Migration ID    Migration Name
--------------------------------------------------
  down    20200919022451  Create calories

これでマイグレーションファイルの修正が可能になりました。該当のマイグレーションファイルを修正をしましょう。

db/migrate/20XXXXXXXXXXXX_create_posts.rb

class CreatePosts < ActiveRecord::Migration[5.2]
  def change
    create_table :posts do |t|
      t.text :title   #ここを修正しました。 titles → title
      t.text :content
      t.timestamps
    end
  end
end

修正が終わったら、マイグレーションファイルを実行します。

マイグレーションファイル実行

rails db:migrate

これにてファイルが修正されたのが反映されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?