2012-08-22 18 views
10

Sipariş modelimin kimliklerinin 1000'den başlamasını ve buradan otomatik olarak aşamalı olarak sayılmasını isterim.ID Kolonunun Göçünün 1.000'de Başlaması için Göçler ve Oradan Otomatik Geçiş Yapılıyor mu?

Bu, geçiş yoluyla yapılabilir mi?

+0

tam tahmin ama yaratmayı denediniz mi: her ne olursa olsun: id => 1000 do | t | –

+0

Hangi veritabanını kullanıyorsunuz? Örneğin. mysql, postgresql, vb? –

+0

Şu anda Sqlite3 kullanıyor, yakında posta gönderilerine geçiyor olacak. –

cevap

21

deneyin tablo oluşturulduktan sonra, bu gibi bir şeyle diziyi güncellemek varsa:

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

Ürün tablosu kimliği <1000 bu şekilde nasıl atanır? –

0

Bu test edilmedi ve hangi db kullandığınızdan emin değilim.

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

veya zaten tablosunda, taşımada bu göçü

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