0
0

More than 1 year has passed since last update.

マイグレーションを自作する

Last updated at Posted at 2022-12-27

カラムを編集する indexにする

create_table :users do |t|
  t.string :name, index: true
  t.string :email, index: { unique: true, name: 'unique_emails' }
end

編集したものをまた編集したいときはどうすればいいのか?

bin/rails g migration ChangeNameOnProducts

もう一度このカラムについて編集したくなった。

************@mbp ********** % bin/rails g migration ChangeNameOnProducts  
      invoke  active_record
    conflict    db/migrate/20221227074540_change_name_on_products.rb
Another migration is already named change_name_on_products: /Users/*********/Repos/********/db/migrate/20221227063442_change_name_on_products.rb. Use --force to replace this migration or --skip to ignore conflicted file.

カラムの定義を変更して
またカラムの定義を変更したくなったときは
直接マイグレーションを編集するよりもマイグレーションファイルを削除して新たに作成してもいいのだろうか?

マイグレーションファイルは削除してもいいのか

マイグレーションファイルはいわばデータベースを作成した歴史です。
ですので実行されてup状態になっているマイグレーションファイルは絶対に削除したり編集したりしてはいけません。
もし誤ってup状態のマイグレーションファイルを削除してしまった状態でアプリをサーバーにアップした時、エラーが出てしまうためです。

マイグレーションファイルを削除する際は必ずdown状態になっているのを確認してから削除するようにしましょう。

出典

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