如何在Rails中使用架构版本?

时间:2016-03-10 11:04:47

标签: ruby-on-rails

如果我的迁移时间戳早于db / schema.rb中的当前时间戳,那么为什么我运行rake db:migrate它仍在运行?

如果我仍然可以运行具有先前时间戳的迁移,db / schema.rb有什么用于获取版本时间戳?

2 个答案:

答案 0 :(得分:1)

前一段时间,架构版本用于推断哪些迁移(可能)运行,哪些迁移不运行。如今,单独跟踪单个迁移,但模式版本号并非完全无用。 docs say(强调我的):

  

db / schema.rb包含数据库的当前版本号。如果合并 两个分支都触及架构,则会确保发生冲突。发生这种情况时,请手动解决冲突,保留两者的最高版本号。

答案 1 :(得分:-1)

如果迁移时间戳早于当前时间戳,则仍会运行迁移。

db / schema中的时间戳阻止您rake db:migrate已完成迁移,但它无法阻止您rake db:migrate VERSION=xxxxxxx