gpt4 book ai didi

sql - 使用 Rails 和 Postgresql 迁移时不填充默认值

转载 作者:行者123 更新时间:2023-11-29 11:23:03 25 4
gpt4 key购买 nike

我目前正在尝试运行此迁移:

class AddDroppedProjectsCountToUser < ActiveRecord::Migration
def self.up
add_column :users, :dropped_projects, :integer, {:default=>0, :required=>true}
end

def self.down
remove_column :users, :dropped_projects
end
end

该列已正确添加,但所有旧记录均未填充 0。它们为零。我也尝试过使用 default=>'0',但无济于事。知道为什么会这样吗? ( rails 3.0.3)


编辑添加:当我创建一个新用户时,它工作正常,一切看起来都是正确的。表中该值仍然为零的只是老用户。

最佳答案

如果你说会发生什么:

def self.up
add_column :users, :dropped_projects, :integer, :null => false, :default => 0
end

相反?如果没有 :null=>false,您仍然允许 dropped_projects 中的 NULL,因此 PostgreSQL 没有理由将它们设置为 0。此外,我不要认为 :requiredadd_column 的有效选项;由于选项只是一个简单的 Hash 并且 add_column 只查找它知道的选项,因此您的杂散 :required 选项将被默默地忽略。

关于sql - 使用 Rails 和 Postgresql 迁移时不填充默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197983/

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