我的环境 - > 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语句..我已经多次尝试过,以确保我在执行的步骤中没有错误。我仍然有这种行为。
这里出了什么问题......?
答案 0 :(得分:13)
我认为你在源头读错了一行。当我读到它时:
db:migrate:reset
#=> [:drop, :create, :migrate]
db:reset
#=> [:drop, :setup]
所以db:reset
只需创建表并将迁移设置为已经运行,而不是实际运行它们。 db:migrate:reset
实际上每次迁移都会运行。
答案 1 :(得分:0)
之前我遇到了同样的问题,但我运行的是3.0.3,事实证明,不知何故,我设法通过更改迁移文件而不运行迁移(忘记它或其他东西)来搞乱迁移...我将从检查这些文件开始