我必須從基於mySql的Rails應用程序遷移到使用postgresql。目前爲止沒有問題,但我不知道如何解決它。postgresql nextval生成現有值
數據的遷移帶來了ids以及postgresql現在的問題與現有的ids:我不清楚它在哪裏得到它用來確定nextval的基礎的價值:它當然不是雖然你可能認爲這是一個好主意,無論如何,它現在與現有的id值相沖突。從標準RoR遷移創建的id列定義爲
not null default nextval('geopoints_id_seq'::regclass)
是否有某個地方可能會黑客使用它作爲基礎的值?現在可能出現這個問題在任何20個左右的表:我可以用
'select max(id) from <table_name>'
,但似乎使自動增量列無謂的念頭。
這最好的處理方式是什麼?
哇,感謝您的及時和有用的答案全部。 我會跑@ hgimenez解決方案,因爲我在Rails環境中,但我認爲這個消息是我可以通過postgres中的命令行來完成。 作爲後續工作:我要試一試,但我可以將這樣的聲明放入遷移中嗎? – 2009-11-10 18:57:40
當然,你可以進行遷移:ActiveRecord :: Base.connection.reset_pk_sequence!('table_name'),但是這當然也可以從psql完成。 – hgmnz 2009-11-10 21:15:45
精彩的+1積分 – kikito 2010-02-26 19:50:33