Сбой миграции Rails для BigInt при использовании Postgres

Я пытаюсь получить столбец в своей базе данных, чтобы использовать bigint в качестве типа.

Я пробовал несколько комбинаций, включая эти, но безуспешно:

add_column :my_table, :my_field, :bigint
add_column :my_table, :my_field, :bigint, limit: 8
add_column :my_table, :my_field, :integer, limit: 8

Я думаю, что часть проблемы заключается в том, что это не просто миграция Rails для столбца БД, чтобы он был bigint, но он также должен работать с PostGres.


person PatrickLightning    schedule 03.02.2016    source источник
comment
вы используете гем pg?   -  person Andrew Hendrie    schedule 03.02.2016
comment
решило ли использование t.integer с ограничением или t.column при миграции (как предлагается в моем ответе) проблему?   -  person Andrew Hendrie    schedule 03.02.2016
comment
Еще не совсем. Может потребоваться просто установить значение my_field в виде строки вместо целого числа. Спасибо за ответ.   -  person PatrickLightning    schedule 03.02.2016
comment
установка его как целого числа с ограничением 8 должна работать. Вы можете опубликовать весь файл миграции?   -  person Andrew Hendrie    schedule 03.02.2016


Ответы (1)


Я думаю, что есть несколько способов сделать это:

<сильный>1. Использование ограничения 8 для целочисленного типа.

create_table 'example' do |t|
  t.integer :my_field, :limit => 8
end

См. на этой странице для получения дополнительной информации об использовании ограничений для установки целочисленного размера в Rails.

<сильный>2. Использование t.column с типом bigint

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

add_column :table_name, :really_big_int, :bigint

В Rails 4 с драгоценным камнем pg это работает:

class CreateDemo < ActiveRecord::Migration
  def self.up
    create_table :my_table do |t|
      t.column :my_field, :bigint
    end
  end
end

Подробнее см. этот ответ.

Этот ответ предполагает, что вы используете драгоценный камень pg в своем проекте Rails и что у вас есть база данных postgres, созданная и доступная в вашей среде разработки (указана в app/config/database.yml).

person Andrew Hendrie    schedule 03.02.2016