2012-08-22 2 views
10

Ich möchte, dass die IDs meines Bestellmodells bei 1000 beginnen und von dort autoinkremental hochzählen.Rails-Migration für ID-Spalte bei 1.000 beginnen und von dort automatisch inkrementieren?

Kann dies über die Migration erfolgen?

+0

komplette Vermutung Aber hast du versucht create_table: whatever_table,: id => 1000 do | t | –

+0

Welche Datenbank benutzen Sie? z.B. mysql, postgresql usw.? –

+0

Derzeit wird Sqlite3 in Kürze auf Postgres migriert. –

Antwort

21

In der Migration dieser Migration versuchen, nach Tabelle erstellt wurde, aktualisieren Sie die Sequenz mit etwas wie folgt aus:

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" 
+0

Wie wird die Produkttabellennummer <1000 auf diese Weise zugewiesen? –

0

Dies wurde nicht getestet und ich bin mir nicht sicher, welche db Sie verwenden.

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

oder wenn Sie bereits die Tabelle

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