加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.不要忘记处理签名!>将这些模块添加到各自的类中将处理一切为了您.>你可以做得更好,也可以为他们的移除同行做这件事.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读