13

Order モデルの ID を 1000 から開始し、そこから自動インクリメントでカウントアップしたいと考えています。

これは移行によって行うことができますか?

4

3 に答える 3

25

移行では、テーブルが作成された後、次のようにシーケンスを更新します。

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"
于 2012-08-22T16:09:20.240 に答える
0

これはテストされておらず、使用しているデータベースがわかりません。

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
于 2012-08-22T15:54:44.510 に答える