Lig*_*lue 3 activerecord ruby-on-rails
我有一个列/外键,resolver_id我希望能够拥有空值(即:Rails 迁移使列成为空 => true)。假设我的迁移中有以下行:
def
change_column_null :bugs, :resolver_id, true
end
Run Code Online (Sandbox Code Playgroud)
但是,在运行成功迁移后(即生成迁移并运行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 migration和db: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
Run Code Online (Sandbox Code Playgroud)
如果相关,resolver_id外键是用户模型的引用,即:
class Bug < ApplicationRecord
# Associations
belongs_to :user
belongs_to :resolver, class_name: 'User'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |