rake db:reset没有填充数据

时间:2011-06-15 02:54:56

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

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

我在rake db中注意到一个奇怪的模式:reset。根据rails源代码,rake db:reset will => 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是否跳过create / update语句..我已经多次尝试过,以确保我在执行的步骤中没有错误。我仍然有这种行为。

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

2 个答案:

答案 0 :(得分:13)

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

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

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

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

答案 1 :(得分:0)

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