2011-11-27 21 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

相关问题