在 Rails 5 和 PostgreSQL 中。
我创建这个文件是为了默认使用 bigint
数据类型而不是 integer
:
# config/initializers/bigint_primary_keys.rb
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:primary_key] = 'bigserial primary key'
所以当运行 create 和 migrate 时,表 id 将是
bigint
类型。# posts table
id bigint not null
...
# users table
id bigint not null
...
但是在迁移中使用
add_reference
时:class ChangeA < ActiveRecord::Migration[5]
def change
add_reference :posts, :users
end
end
posts
表添加这个字段:# posts table
...
user_id integer
posts
和 users
表 id 都是 bigint
类型,但是这个字段没有改变。有没有办法将数据类型设置为
add_reference
方法? 最佳答案
我找到了答案:
http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_reference
它有 type
选项。这就是我想要的。
关于ruby-on-rails - 在 Rails 中使用 add_reference 时如何使用 bigint 类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42828743/