マイグレーションファイルで使うコマンド
・マイグレーションファイルの状態を確認するとき
$ rake db:migrate:status
・既存カラムにdefaultオプションを追加する時
$ rails g migration change_column_default_to_users
code:migration.rb
class ChangeColumnDefaultToUsers < ActiveRecord::Migration5.2 def change
change_column_default :users, :name, from: nil, to: ""
end
end
$ rails db:migrate
既存カラムにnull制約を追加する時
code:migration.rb
rails g migration change_colum_null_name_users
class ChangeColumDefaultNullUsers < ActiveRecord::Migration6.1 def change
change_column_null :users, :name, false, 0
end
end
$ rails db:migrate
カラムの追加
$ rails g migration モデル名 カラム名:データ型
code:migration.rb
class ChangeColumnDefaultToUsers < ActiveRecord::Migration5.2 def change
add_column_ :users, :モデル名, カラム名, : データ型
end
end
$ rails db:migrate
デフォルトをNULLにするとき
code:migration.rb
def change
change_column :t_preregistered_items, :formal_rank, :integer, null: true, default: nil
end
end
カラムの編集
$ rails g migration ChangeDatetipeReferencetoposts
code:migration.rb
change_column :posts, :researcher_id, :references, foreign_key: true
$ rails db:migrate
モデルの紐付け
$ rails g migration AddResearcherIdToPosts
code:migration.rb
def change
execute 'DELETE FROM Posts;'
add_reference :posts, :researcher, null: false, index: true
end