对于 Rails 项目,如果给你一个数据库转储,该怎么办?
- 我运行所有迁移,然后加载数据库转储。
- 我只加载数据库转储。
在第 2 点中,如果我仅加载数据库转储,然后将新的迁移添加到我的项目中。因此,运行 rake db:migrate 只会运行新的迁移,因为旧的迁移已经通过加载数据库转储来运行。
或者,加载数据库转储与运行迁移无关。如果您运行了rake db:migrate
,迁移才会被标记为up?
注意:DB dumb 不是 Rails 模式,它是由 MySQL 生成的,并且包含其他开发人员拥有的所有数据。
最佳答案
我将首先加载数据库转储,因为它还包含所有数据和当前架构结构。
running rake db:migrate will only run the new migration
这要看情况。如果您的数据库转储有一个 schema_migrations 表,其中列出了所有先前应用的迁移,则它将不会应用这些迁移。否则,它将尝试并失败。
您基本上需要以下步骤:
- 导入您的转储
- 创建 Rails 架构 (rake db:schema:dump)
- 如果您有较新的迁移,请运行它们
关于mysql - 加载哑巴数据库并运行所有迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467522/