Rails Migration: похоже, что Bigint на PostgreSQL не работает? - PullRequest
17 голосов
/ 15 августа 2011

При попытке создать таблицу со столбцом 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+0,9.Я удалил базу данных и выполнил миграцию несколько раз, но она все еще не создает столбец bigint.

Ответы [ 5 ]

23 голосов
/ 23 мая 2012

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

add_column :table_name, :really_big_int, :bigint

Тогда вам не нужны эти ограничения.

20 голосов
/ 02 ноября 2013

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

t.column :really_big_int, :bigint
3 голосов
/ 24 сентября 2016

Rails 5.0.0.1 работает:

  def change
    create_table :huge do |t|  
      t.integer :big_bastard, limit: 8
    end
  end
3 голосов
/ 30 мая 2016

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

create_table :table_name do |t|
   t.bigint :really_big_int
end
1 голос
/ 03 сентября 2013

Мне удалось создать бигинт, используя 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).

...