2017-05-02 6 views
1

カラム値/外部キーがresolver_idで、ヌル値(たとえば:Rails Migration to make a column null => true)を持つことができます。成功した移行を実行した後、しかしマイグレーション後に列を「null:true」に変更しようとすると、スキーマに反映されません。

def 
    change_column_null :bugs, :resolver_id, true 
end 

(すなわち、移行を生成し、rails db:migrateを実行する)、スキーマは、バージョン番号のほか、変わらず::のは、私は私の移行に次の行があるとしましょう

t.integer "resolver_id"

私は期待していに対し:

t.integer "resolver_id" , null: true

私は行方不明のものがありますか?

私もこれだけchange_columnなどを使用して試してみた:

change_column :bugs, :resolver_id, :integer, null: true

をしかし、これはまだスキーマには反映されません。 rails g migrationdb:migrateは正常に動作し、スキーマのバージョン番号は最新の移行に一致します。参考のため

、ここに私のスキーマです:

ActiveRecord::Schema.define(version: 20170502203934) do 

    create_table "bugs", force: :cascade do |t| 
    t.string "name" 
    t.text  "error_msg" 
    t.text  "description" 
    t.text  "causes" 
    t.boolean "resolved" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "user_id" 
    t.integer "resolver_id" 
    t.index ["resolver_id"], name: "index_bugs_on_resolver_id" 
    t.index ["user_id"], name: "index_bugs_on_user_id" 
    end 

    create_table "users", force: :cascade do |t| 
    t.string "username" 
    t.string "first_name" 
    t.string "last_name" 
    t.string "email" 
    t.datetime "created_at",  null: false 
    t.datetime "updated_at",  null: false 
    t.string "password_digest" 
    t.index ["email"], name: "index_users_on_email", unique: true 
    t.index ["username"], name: "index_users_on_username", unique: true 
    end 

end 

関連する場合は、resolver_id外部キーはすなわち、Userモデルの参照です:

class Bug < ApplicationRecord 
    # Associations 
    belongs_to :user 
    belongs_to :resolver, class_name: 'User' 
end 

答えて

1

null: trueはデフォルトの動作です。あなたのスキーマでは決して表示されません。null: falseか何も表示されません。

関連する問題