カラムを編集する 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状態になっているのを確認してから削除するようにしましょう。
出典