首页 文章

rake db:reset没有填充数据

提问于
浏览
4

我的环境 - > 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

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

Case 1: 当我手动执行这些步骤时,我的意思是逐个删除,创建和迁移 - 这些语句填充表中的数据 .

Case 2: 当我执行rake db:reset时,架构设置正确 . 但是数据没有进入数据库 . db:reset是否跳过create / update语句..我已经多次尝试过,以确保我在执行的步骤中没有错误 . 我仍然得到这种行为 .

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

2 回答

  • 13

    我认为你在源头读错了一行 . 当我读到它:

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

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

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

  • 0

    我之前遇到过同样的问题,但是我运行的是3.0.3,事实证明,不知何故,我设法通过更改迁移文件而不是运行迁移(忘记它或其他东西)来搞乱迁移......我会首先检查这些文件

相关问题