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

Админка на Ruby on Rails

Определение первичного ключа 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