ruby on rails-rake db:reset不填充数据



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

我注意到rake db中有一个奇怪的模式:重置。根据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跳过create/update语句。。我已经试过好几次了,以确保我所做的步骤没有错误。我仍然会有这种行为。

这里出了什么问题?

我认为您在源代码中读错了一行。正如我读到的:

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

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

因此,db:reset只是创建表并设置迁移,就好像它们已经运行过一样,而没有实际运行它们。db:migrate:reset实际上运行每个迁移。

我以前也遇到过同样的问题,但我运行的是3.0.3,结果发现,不知怎么的,我通过更改迁移文件而不运行迁移(忘记了这件事或其他什么),把迁移搞砸了。。。我将从检查这些文件开始

最新更新