Rails迁移:PostgreSQL上的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列。
由于某种原因,create table不喜欢bigint。 但是,您可以使用bigint数据类型使用add_columm执行此操作:
add_column :table_name, :really_big_int, :bigint
那你就不需要那些限制了。
这适用于Rails 4
t.column :really_big_int, :bigint
在rails 4.2 +中你可以使用如下:
create_table :table_name do |t| t.bigint :really_big_int end
Rails 5.0.0.1它的工作原理:
def change create_table :huge do |t| t.integer :big_bastard, limit: 8 end end
我能够使用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)。