true)。假设我的迁移中有以下行: def -6ren">
gpt4 book ai didi

ruby-on-rails - 尝试将列更改为 "null: true"不会在迁移后反射(reflect)在架构中

转载 作者:行者123 更新时间:2023-12-04 12:47:13 25 4
gpt4 key购买 nike

我有一个列/外键,resolver_id,我希望它能够具有空值(即:Rails Migration to make a column 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

但是,这仍然没有反射(reflect)在模式中。 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 外键是用户模型的引用,即:

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

最佳答案

null: true 是默认行为。您永远不会在您的模式中看到它,您将看到 null: false 或什么也看不到。

关于ruby-on-rails - 尝试将列更改为 "null: true"不会在迁移后反射(reflect)在架构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com