在Rails中使用add_reference时如何使用bigint类型?

时间:2017-03-16 08:26:06

标签: ruby-on-rails postgresql

在Rails 5和PostgreSQL中。

我创建此文件时默认使用bigint数据类型而不是integer

# config/initializers/bigint_primary_keys.rb
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:primary_key] = 'bigserial primary key'

因此,在运行create and 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方法?

1 个答案:

答案 0 :(得分:0)

我找到了答案:

http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_reference

它有type选项。这就是我想要的。