Rails Migration for ID Column to Start at 1,000 an

2019-02-16 13:20发布

问题:

I'd like the ID's of my Order model to start at 1000, and count up autoincrementally from there.

Can this be done via migration?

回答1:

In your migration, after table has been created, update the sequence with something like this:

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:

This has not been tested and I am not sure what db you are using.

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

or if you already have the table try this migration

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