加载 DB dumb,以及 运行 所有迁移

Loading the DB dumb, and running all the migrations

对于一个 Rails 项目,如果给你一个数据库转储,应该怎么做?

  1. 我运行所有迁移,然后加载数据库转储。
  2. 我只加载数据库转储。

在第 2 点中,如果我只加载数据库转储,然后向我的项目添加一个新的迁移。那么,运行宁 rake db:migrate 只会 运行 新迁移,因为旧迁移已经 运行 通过加载数据库转储。

或者,加载数据库转储与 运行ning 迁移无关。如果您有 运行 rake db:migrate?

,迁移只会被标记为 up

注意:DB dumb 不是 Rails 模式,它是由 MySQL 生成的,它包含开发人员拥有的所有数据。

我会首先加载数据库转储,因为它还包含您的所有数据和当前架构结构。

running rake db:migrate will only run the new migration

这取决于。如果您的数据库转储有一个 schema_migrations table,它列出了所有以前应用的迁移,它将不会应用这些迁移。否则,它将尝试并失败。

你基本上需要这些步骤:

  1. 导入你的转储
  2. 创建一个 Rails 模式(rake db:schema:dump)
  3. 如果您有较新的迁移,运行 它们