Изменение идентификатора ActiveRecord по умолчанию с 0 на 1000000 - PullRequest
4 голосов
/ 11 марта 2010

Я бы хотел изменить минимум идентификатора созданных объектов с 1 на 1000. Поэтому, когда я создаю в рельсах мой первый объект модели, он получает ID 1000, а не 1.

Есть ли способ установить это в файлах схемы / миграции?

Ответы [ 2 ]

5 голосов
/ 11 марта 2010

Я не знаком с MySQL, но для Postgres вы можете сделать что-то подобное в своем файле миграции:

class CreateCustomers < ActiveRecord::Migration
  def self.up
    create_table :customers do |t|
      t.string :name
      t.timestamps

    end
    execute "SELECT setval('customers_id_seq', 1000);"
end

Обратите внимание, что вызов метода execute выполняется вне блока create_table.

4 голосов
/ 13 марта 2010

Для MySQL используйте

class CreateCustomers < ActiveRecord::Migration
  def self.up
    create_table :customers do |t|
      t.string :name
      t.timestamps

    end
    execute "ALTER TABLE customers AUTO_INCREMENT = 1000;"
end

Ваше поле auto_increment (id) будет начинаться со значения 1000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...