Rails 2 个 branch 的 migration 合并问题?

linjunhalida · 2013年10月04日 · 最后由 linjunhalida 回复于 2013年10月04日 · 2093 次阅读

假设有一个线上版本 master,一个开发版本 develop,时间线是这样的:

  • develop 开始开发,创建了一个 migration A
  • master 修订 bug,创建了一个 migration B,并且执行了
  • develop 继续开发,创建 migration C
  • develop 合并到 master,master 跑 migrate

实际测试下来,master 会去跑 A 和 C,跳过 B,这样工作正常。 我奇怪的是,rails 怎么知道跳过已经跑了的 B?哪里有一个缓存?在数据库里面吗? 根据 schema 里面的版本号好像不能获得这样的信息吧?

有个表啊。。。。。数据库里面 哪些跑过了的都在里面

db/schema.rb中保存了数据库当前的状态。你看下它里面的注释就知道了。

select * from schema_migrations;

哈,原来如此。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号