Rails(3.2)アプリでは、データベースにテーブルがたくさんありますが、nullではない制約をいくつか追加するのを忘れていました。グーグルで調べましたが、どうすればよいかわかりません。既存の列にnull以外を追加する移行を記述します。
TIA。
Rails 4+、 nates 'answer (using change_column_null )の方が優れています。
プリレール4、 change_column を試してください。
change_column_null を使用することもできます。
change_column_null :table_name, :column_name, false
1)最初:デフォルト値で列を追加します
2)その後:デフォルト値を削除
add_column :orders, :items, :integer, null: false, default: 0
change_column :orders, :items, :integer, default: nil
新しい移行スクリプト/スキーマの作成で使用している場合、ここで定義できます
class CreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
t.string :name, null: false # Notice here, NOT NULL definition
t.string :email, null: false
t.string :password, null: false
t.integer :created_by
t.integer :updated_by
t.datetime :created_at
t.datetime :updated_at, default: -> { 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' }
end
end
end