Rails Миграция для столбца ID начинается с 1000 и автоматически обновляется оттуда?

Я бы хотел, чтобы идентификатор моей модели заказа начинался с 1000 и автоматически подсчитывал оттуда.

Можно ли это сделать с помощью миграции?

Ответ 1

В вашей миграции после создания таблицы обновите последовательность следующим образом:

create_table :products do |t|
  t.string  :name
  # other stuff
end

# for Postgres
execute "SELECT setval('products_id_seq', 1000)"

# and for mysql ...
execute "ALTER TABLE products AUTO_INCREMENT = 1000"

Ответ 2

Это не было проверено, и я не уверен, что вы используете db.

create_table(:order, :id => false) do |t|
   t.integer :id, :options => 'PRIMARY KEY', :default => 1000

или если у вас уже есть таблица, попробуйте эту миграцию

def change
  execute "ALTER TABLE orders AUTO_INCREMENT = 1000"
end