2011-03-25 26 views
3

我想運行遷移來創建一個User_id列從10000開始計數的User表。我想通過執行方法避免使用DB特定語法,因爲我的生產和開發服務器不一樣。如何從軌道中的主鍵字段中的10000開始計數?

是否有軌道的方式來做到這一點?

+2

http://stackoverflow.com/questions/1427148/how-can-i-set-the-starting-point-for-the-主鍵-ID-列在-postgres的通孔 – fl00r 2011-03-25 11:10:25

回答

2

如果您需要以獨立於數據庫的方式執行此操作,我不會看到比在遷移中創建10000個用戶,然後執行「截斷表用戶」或僅刪除ID爲< 10000的用戶更簡單的選項。這可能需要一點時間。

在postgres中,您可以重新定義負責生成這些ID的序列的起始編號。在MySQL中,你也可以做到這一點,但不同的是:「ALTER TABLE theTableInQuestion AUTO_INCREMENT = 1234」

當然,您可以將此功能添加到ActiveRecord :: Migration類,並在DB特定的驅動程序中提供實現。

一切都取決於你想要走多遠,這個:)