gpt4 book ai didi

ruby-on-rails - Rails 5.1.0 如何升级

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

Rails 5.1.0 引入了 bigint 主键和外键。

所有新表都将具有 bigint pk 并且创建到旧表的引用迁移将不起作用,因为旧 pk 是正常的 int。

使用 change_column _, :id,:bigint只是外键的错误指向它,更不用说查找所有表以及需要修改哪个键的所有手工劳动。

如何迁移生产数据库的所有表以使用 bigint pk 和 fk?

当然是生产了rails db:drop rails db:setup不是一个选择。

最佳答案

我面临同样的问题。临时删除 fk 应该可以工作。目标是将所有主键从 int 更改为 bigint。

class ChangeForeignKeysToBigInt < ActiveRecord::Migration[5.1]
def change

remove_foreign_key "event_users", "events"

change_column :event_users, :event_id, :bigint
change_column :events, :id, :bigint

add_foreign_key "event_users", "events"

end
end

您必须对所有表和外键列执行此操作
也许以同样的方式处理指数,我没有测试过

关于ruby-on-rails - Rails 5.1.0 如何升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782621/

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