mysql - 加载哑巴数据库并运行所有迁移

标签 mysql ruby-on-rails rails-migrations

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

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

在第 2 点中,如果我仅加载数据库转储,然后将新的迁移添加到我的项目中。因此,运行 rake db:migrate 只会运行新的迁移,因为旧的迁移已经通过加载数据库转储来运行。

或者,加载数据库转储与运行迁移无关。如果您运行了rake db:migrate,迁移才会被标记为up

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

最佳答案

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

running rake db:migrate will only run the new migration

这要看情况。如果您的数据库转储有一个 schema_migrations 表,其中列出了所有先前应用的迁移,则它将不会应用这些迁移。否则,它将尝试并失败。

您基本上需要以下步骤:

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

关于mysql - 加载哑巴数据库并运行所有迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467522/

相关文章:

ruby-on-rails - ActiveRecord 数据类型的文档页面在哪里?

php - HasMany() 在 Laravel 中无法用于获取关系明智的记录

ruby-on-rails - 如何检查字符串的最后一个字母?

ruby-on-rails - 这些方法如何添加到我的类中?

ruby-on-rails - 从引擎安装迁移将不起作用

ruby-on-rails - 什么是 "circular argument reference"错误,有 activesupport time_zone?

javascript - 单击按钮时自动更新表格

mysql - nodejs-mysql中多个占位符的一个值

java - 无法从android接收php中的post参数?

ruby-on-rails - 如何在 Ruby 中忽略字符串中的所有引号和双引号?