【发布时间】:2017-06-06 12:37:52
【问题描述】:
Rails 5.1 迁移为表的主键 (changelog) 生成 BIGINT(而不是 Integer)。
是否可以在配置中的某处禁用它?如果是,如何禁用它?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-5.1
Rails 5.1 迁移为表的主键 (changelog) 生成 BIGINT(而不是 Integer)。
是否可以在配置中的某处禁用它?如果是,如何禁用它?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-5.1
根据pull request,不,这在配置级别是不可能的。
但实际上,您可以强制 id 为整数,如下所示:
create_table :users, id: :integer do
另一方面,您必须意识到更改也会影响references 的行为,因此您应该小心这些:
t.references :orders, type: :integer
鉴于这是太多重复的代码,我建议您为此编写帮助程序,覆盖默认方法,或者非常激进并分叉您的数据库适配器,随意更改它。我会选择第二个选项:
Migration[5.0] 和ActiveRecord::ConnectionAdapters::TableDefinition 创建匿名模块
create_table、add_reference、add_belongs_to,在第二个中定义references和belongs_to(belongs_to应该只是references的别名)【讨论】:
create_table :users, id: :integer do - 这就是我想要的。谢谢!
references 到那张桌子。