最佳答案
根据 Rails doc: http://guides.rubyonrails.org/migrations.html
“ Active Record 跟踪已经运行的迁移,因此您所要做的就是更新源代码并运行 rake db: shift。”
ActiveRecord 实际上是如何做到这一点的? ActiveRecord 在哪里存储数据?
我怀疑这可能存储在数据库本身? 在一个表的地方。
在我的开发机器上,我运行了所有的迁移。然后使用 mysqldump 复制生产数据库。然后我运行“ rake db: shift: status”,它正确地显示了需要在生产数据库上运行的迁移。
我曾经认为 ActiveRecord 使用时间戳跟踪上一次迁移运行。但我认为这是不正确的,因为 ActiveRecord 正确地运行从另一个代码分支合并进来的“旧”迁移。
会不会有内部人员知道这些细节? 谢谢