【问题标题】:rails test table doesn't exist after reverting migration恢复迁移后rails测试表不存在
【发布时间】:2010-01-28 04:26:26
【问题描述】:

我认为这是一个非常愚蠢的问题:我刚刚在半小时前创建的新演示应用程序中删除了我一分钟前创建的名为 person_emails 的表。然后我像刚才一样开始测试,当我在一个名为 line_item 的不相关模型上运行单元测试时,我得到“ActiveRecord::StatementInvalid: Mysql::Error: Table 'depot_test.person_emails' doesn't exist: DELETE FROM @987654321 @"

我确实做了 rake db:test:prepare 和 rake db:migrate RAILS_ENV=test。

此外,我在 line_items 表中有一个名为“price”的列,我使用迁移将其删除,但无论如何测试都会对其进行测试并抛出错误。在恢复迁移或使用迁移删除列后,我是否总是应该为测试做些什么?

有什么想法吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails unit-testing


    【解决方案1】:

    我很确定这正在发生,因为您仍然有一个 person_emails 固定文件!它试图在加载夹具数据之前清除表。检查名为test/fixtures/person_emails.yml 的文件并将其删除,您应该已设置完毕。

    【讨论】:

    • 成功了!!所以我猜当你恢复迁移时,迁移添加到固定装置的行不会被删除,你必须手动删除它们。谢谢@
    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多