5
5

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 5 years have passed since last update.

Railsのマイグレーションについて

Last updated at Posted at 2019-06-21

マイグレーションに関する備忘録

#1.マイグレーションファイルの実行状況を知る方法

以下のコマンドをターミナル上で実行する。

rake db:migrate:status

そうすると、以下のような表示がされる。

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20190618115638  Devise create users
   up     20190620183857  Create groups
   up     20190620183912  Create group users
  down    20190621063102  Add devise to users

up   → マイグレーションファイル実行済み
down → マイグレーションファイル未実行

#2.マイグレーションファイルを修正する方法

2つの修正方法を紹介する。

1つ目の方法
①以下のコマンドを実行して、一度マイグレーションファイルが実行される前の状態に戻す。

rake db:rollback

この時に、DB(データベース)上のカラムなどが消去されているかを確認する。

ちなみに、マイグレーションファイルの変更履歴を確認したい場合は、schema_migrationsを見れば、今までの変更履歴が確認できる。
db/schema.rbのディレクトリにある。
https://gyazo.com/e2d48570c5a046a8f425e56838aae0e6

②マイグレーションファイルの中身(カラム名やカラムの型など)を修正する。
③再度、以下のコマンドを実行して、マイグレーションファイルを実行する。

rake db:migrate

2つ目の方法
①以下のコマンドで、新たなマイグレーションファイルを作成する。

$ rails g migration クラス名

※クラス名は、処理と対象を書く。usreテーブルにnameカラムを追加したい場合は、以下のようになる。

rails g migration AddNameToUsers name:string

②修正箇所を正しい内容に変更するためのマイグレーションファイルを作成する。
③マイグレーションファイルを実行する。

#3.一度実行したマイグレーションファイル自体の内容を変更あるいは、ファイル自体を削除しない方がいい理由

アプリケーションのファイルをデプロイ先にpushし、マイグレーションファイルの実行をした時、ローカル環境と異なったDB(データベース)ができてしまったり、エラーになってしまうから。

<参考記事>
https://qiita.com/usizou/items/6dcdea46ec0b4a89c661
http://railsdoc.com/rake
https://qiita.com/azusanakano/items/a2847e4e582b9a627e3a

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?