2012-08-22 8 views
10

मैं अपने ऑर्डर मॉडल की आईडी 1000 से शुरू करना चाहता हूं, और वहां से ऑटोइनक्रिएटिव रूप से गिनती हूं।आईडी कॉलम के लिए रेल पर माइग्रेशन 1,000 से शुरू करने और वहां से ऑटोइनक्रिकमेंट अप?

क्या यह माइग्रेशन के माध्यम से किया जा सकता है?

+0

पूरा अनुमान लेकिन क्या आपने create_table को आजमाया है: whatever_table,: id => 1000 do | t | –

+0

आप किस डेटाबेस का उपयोग कर रहे हैं? जैसे mysql, postgresql, आदि? –

+0

वर्तमान में Sqlite3 का उपयोग कर, जल्द ही पोस्टग्रेज़ में माइग्रेट कर देगा। –

उत्तर

21

कोशिश अपने माइग्रेशन में, के बाद तालिका बना दिया गया है, कुछ इस तरह के साथ अनुक्रम अद्यतन है:

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

उत्पाद तालिका आईडी <1000 इस तरह से कैसे असाइन करें? –

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 
संबंधित मुद्दे