0

我在 dev 上进行了有效的迁移,并且正在尝试在测试中进行迁移。 rake:migrate一直工作到我今天添加的最新迁移。我正在运行db:migrate,它的输出包括最新的迁移。我还确认有问题的表存在于我的本地数据库中。

当我尝试运行时,rake test:functionals ...我得到以下信息:

You have 1 pending migrations:
  20130506153458 AddProcessingErrorsTable
Run `rake db:migrate` to update your database then try again.

所以我最终运行了以下命令并获得了我想要的适当输出:

rake db:migrate:redo VERSION=20130506153458 RAILS_ENV=test

==  AddProcessingErrorsTable: reverting =====================
-- drop_table("processing_errors")
   -> 0.0098s
==  AddProcessingErrorsTable: reverted (0.0098s) ============

==  AddProcessingErrorsTable: migrating =====================
-- create_table(:processing_errors)
   -> 0.0185s
==  AddProcessingErrorsTable: migrated (0.0195s) ============

当我现在尝试运行测试时,我仍然收到相同的错误消息:

You have 1 pending migrations:
  20130506153458 AddProcessingErrorsTable
Run `rake db:migrate` to update your database then try again.

感谢你给与我的帮助。

4

2 回答 2

3

通常您不必迁移您的测试数据库。听起来开发数据库尚未迁移。每次运行测试时,开发模式都会用作测试 db 的基础。

在运行测试之前尝试迁移您的开发数据库:

rake db:migrate

也许就是这样。

于 2013-05-06T20:21:34.863 回答
0

确保您的迁移已启动:rake db:migrate:status并尝试rake db:test:prepare

来自Rails Guides的一些有用信息。

于 2013-05-06T20:31:00.997 回答