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

目的

適用済みのマイグレーションファイルに記載されたカラムの型を変更すること

手順

■ 実行予定の手順

1.既存のマイグレーションファイルをロールバックする

2.変更したいマイグレーションファイルのステータスを確認

3.対象のマイグレーションファイルを書き換える

4.マイグレーションコマンドの実行

5.マイグレーションファイルのステータスがupになっているか確認

1.既存のマイグレーションファイルをロールバックする

前提として適用済みのマイグレーションを編集してはいけません。
必ずロールバックをしてから編集する必要があります。

ターミナル
rails db:rollback

2.変更したいマイグレーションファイルのステータスを確認

変更したいマイグレーションファイルのステータスがdownになっているか確認します。

ターミナル
rails db:migrate:status

実行すると以下のようにターミナルにマイグレーションファイルのステータスが表示されます。

ターミナル
Status   Migration ID    Migration Name
--------------------------------------------------
   up       222222222222  Devise create users
   down     222222222222  Create items

rails db:rollbackコマンドでは直近のマイグレーションのみロールバックがされます。
変更したいマイグレーションファイルをdownにしたい場合は、複数回rails db:rollbackコマンドを実行してください。

マイグレーションファイルを一度に複数ロールバックする方法はこちらの記事をご参考ください。

3.対象のマイグレーションファイルを書き換える

対象のマイグレーションファイルのステータスがdownになっていることが確認できましたら、マイグレーションファイルのカラムの型を変更していきます。
例: integer → float に変更

元の記述

t.integer :time, null: false

変更後の記述

t.float :time, null: false

4.マイグレーションコマンドの実行

変更したいカラムの型を書き換えたらマイグレーションコマンドを実行します。

ターミナル
rails db:migrate

マイグレーションコマンドはdownになっているマイグレーションファイルをすべてupにしてくれます。

5.マイグレーションファイルのステータスがupになっているか確認

念の為マイグレーションファイルのステータスを確認します。

ターミナル
rails db:migrate:status

ステータスがupになっていることが確認できたら終了です。

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?