Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Определение первичного ключа id BIGINT PRIMARY KEY при создании модели (таблицы БД) ActiveRecord Ruby on Rails

Иногда возникает необходимость использования большего диапазона для значений первичного ключа (идентификатора записи) в модели, когда количество записей будет явно превышать допустимый диапазон, предоставляемый INT в MySQL. Прямого механизма указания типа первичного ключа в ActiveRecord::Migration не существует, но есть метод execute:

class CreateProducts < ActiveRecord::Migration

  def change

    create_table :products do |t|

      ... 

    end

    add_index ...

    ...

    # или BIGINT UNSIGNED AUTO_INCREMENT
    # для еще большего диапазона
    execute "ALTER TABLE products MODIFY id BIGINT AUTO_INCREMENT"

  end

end