【问题标题】:rake db:reset does not populated datarake db:reset 不填充数据
【发布时间】:2011-09-15 04:52:16
【问题描述】:

我的环境 -> Ruby 1.9.2 和 Rails v3.0.5

我注意到 rake db:reset 中有一个奇怪的模式。根据 rails 源代码,rake db:reset 将 => db:drop、db:create 和 db:migrate。 https://github.com/rails/rails/blob/v3.0.5/activerecord/lib/active_record/railties/databases.rake#L159

设置:我的一个迁移文件有 Model.create 语句来填充一些数据(请原谅我,我不是在这些迁移中放入数据填充代码的人 :)。 .)

案例 1:当我手动执行这些步骤时,我的意思是逐一删除、创建和迁移 - 这些语句会在表中填充数据。

案例 2: 当我只 rake db:reset 时,架构设置正确。但数据没有进入数据库。 db:reset 是否跳过创建/更新语句.. 我已经尝试了几次以确保我在执行的步骤中没有错误。我仍然得到这种行为。

这里出了什么问题...?

【问题讨论】:

  • 你能发布你的迁移吗?

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

我之前也遇到过同样的问题,但我运行的是 3.0.3,结果发现,不知何故,我设法通过更改迁移文件而不运行迁移来搞乱迁移(忘了它或其他什么)......我将从检查这些文件开始

【讨论】:

    【解决方案2】:

    我认为您在源代码中阅读了错误的行。当我读到它时:

    db:migrate:reset # => [:drop, :create, :migrate]

    db:reset # => [:drop, :setup]

    所以db:reset 只需创建表并将迁移设置为就好像它们已经运行一样,而不是实际运行它们。 db:migrate:reset 实际运行每个迁移。

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 2023-03-30
      • 2015-06-15
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2013-12-05
      相关资源
      最近更新 更多