ruby-on-rails – 如何在Rails 5.1中关闭BIGINT主键
发布时间:2020-12-17 03:25:17 所属栏目:百科 来源:网络整理
导读:Rails 5.1迁移为表的主键生成BIGINT(而不是Integer)( changelog). 是否可以在配置中的某个位置禁用它?如果是这样,如何禁用它? 解决方法 根据 pull request,在配置级别上不可能这样做. 但事实上,你可以将id强制为整数,如下所示: create_table :users,id: :
Rails 5.1迁移为表的主键生成BIGINT(而不是Integer)(
changelog).
是否可以在配置中的某个位置禁用它?如果是这样,如何禁用它? 解决方法
根据
pull request,在配置级别上不可能这样做.
但事实上,你可以将id强制为整数,如下所示: create_table :users,id: :integer do 另一方面,您必须意识到更改也会影响引用行为,因此您应该小心这些: t.references :orders,type: :integer 看到这是重复代码太多,我建议你为此编写助手,覆盖默认方法,或者非常激进并分叉数据库适配器,根据需要更改它.我会选择第二个选项: >为Migration [5.0]和ActiveRecord :: ConnectionAdapters :: TableDefinition创建匿名模块>在第一个中定义create_table,add_reference,add_belongs_to,在第二个中定义引用和belongs_to(belongs_to应该只是引用的别名)>在这些方法中只需修改选项并调用super.不要忘记处理签名!>将这些模块添加到各自的类中将处理一切为了您.>你可以做得更好,也可以为他们的移除同行做这件事. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |