2011-11-27 44 views
0

在軌數據庫創建腳本schema.rb,有這條線在頂部:ActiveRecord :: Schema.define info:schema.rb中的版本 - >任何需要順序的?

ActiveRecord::Schema.define(:version => 20111127090505) do 

的文檔(http://api.rubyonrails.org/classes/ActiveRecord/Schema.html)說,在 信息散列參數是可選的

  • 是什麼:版本用於?
  • 這個號碼有沒有必要在登機時增加?也就是說,當天晚些時候簽入會導致版本號下降......
  • 如果存在時間戳大於給定的遷移,它們是否會運行只是因爲它們不在遷移表中,但類文件是否存在?
  • 遷移文件是否按順序運行?

回答

3

該版本用於確定運行什麼遷移最後。這隻會隨着時間的推移而增加。您在此處運行的移植版本爲,創建時間爲2011年11月27日,上午9:05:05以UTC時間創建的(不是,運行)。這就是這個數字:一個時間戳。

每次運行新創建的遷移時,這個數字都會增加,這樣Rails就會知道哪個運行了最後一個,哪個運行的是下一個。下一次要運行的遷移將是第一個遷移數量大於此數字的遷移。

是的,遷移文件按照它們創建的順序運行。

+0

假設2個編碼器: A創建遷移VERSIONID 1個 B創建遷移VERSIONID 2 乙提交遷移和架構與模式版本更新爲2 A提交遷移和架構與模式版本更新爲1 是這種情況OK ? – justingordon

+1

@justingordon:如果發生這種情況,您可能會在db/schema.rb文件中遇到衝突。如果發生這種情況,只需使用較大的數字 –

+0

有這個確切的問題,並使用較大的數字工作。 – tim