Подтвердить что ты не робот

Миграция Rails: Bigint на PostgreSQL, похоже, терпит неудачу?

Попытка создать таблицу с столбцом 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.

4b9b3361

Ответ 1

По какой-то причине таблица create не нравится bigint. Вы можете, однако, сделать это с помощью add_columm, используя тип данных bigint:

add_column :table_name, :really_big_int, :bigint

Тогда вам не нужен этот лимит.

Ответ 2

Это работает в Rails 4

t.column :really_big_int, :bigint

Ответ 3

Rails 5.0.0.1 работает:

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

Ответ 4

В рельсах 4.2 + вы можете использовать как:

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

Ответ 5

Мне удалось создать 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).