Ответ 1
По какой-то причине таблица create не нравится bigint. Вы можете, однако, сделать это с помощью add_columm, используя тип данных bigint:
add_column :table_name, :really_big_int, :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 не нравится bigint. Вы можете, однако, сделать это с помощью add_columm, используя тип данных bigint:
add_column :table_name, :really_big_int, :bigint
Тогда вам не нужен этот лимит.
Это работает в Rails 4
t.column :really_big_int, :bigint
Rails 5.0.0.1 работает:
def change
create_table :huge do |t|
t.integer :big_bastard, limit: 8
end
end
В рельсах 4.2 + вы можете использовать как:
create_table :table_name do |t|
t.bigint :really_big_int
end
Мне удалось создать bigint с помощью t.column
. Это полезно, если вы хотите контролировать порядок столбцов в таблице.
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 версии 0.15.1 (x86-mingw32).