在 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
postsusers 表 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/

10-13 23:29