Rails迁移:PostgreSQL上的Bigint似乎失败了吗?

时间:2011-08-15 02:40:04

标签: ruby-on-rails postgresql activerecord migration bigint

尝试使用bigint列创建表会创建标准整数列。怎么可能出错?我不知道从哪里开始寻找。

我在迁移中使用它:

create_table :table_name do |t|
  t.integer :really_big_int, limit: 8
end

我正在使用Ruby 1.9.2,PostgreSQL 9.0.3和Rails 3.0.9。我已经删除了数据库并多次运行迁移,但它仍然没有创建bigint列。

5 个答案:

答案 0 :(得分:23)

由于某种原因,create table不喜欢bigint。但是,您可以使用bigint数据类型使用add_columm执行此操作:

add_column :table_name, :really_big_int, :bigint

然后你不需要那些限制。

答案 1 :(得分:20)

这适用于Rails 4

t.column :really_big_int, :bigint

答案 2 :(得分:3)

在rails 4.2 +中你可以使用:

create_table :table_name do |t|
   t.bigint :really_big_int
end

答案 3 :(得分:3)

Rails 5.0.0.1可行:

  def change
    create_table :huge do |t|  
      t.integer :big_bastard, limit: 8
    end
  end

答案 4 :(得分:1)

我能够使用t.column创建bigint。如果要控制表中的列顺序,这非常有用。

create_table :table_name do |t|
  t.string :other_column
  t.column :really_big_int, :bigint
  .
  .
  t.timestamps
end

我正在使用Rails 3.2.12和pg gem version 0.15.1(x86-mingw32)。