ruby-on-rails – PG :: DependentObjectsStillExist:使用rspec时出错

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – PG :: DependentObjectsStillExist:使用rspec时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我跑
$rspec "/any_file"

rspec在schema.rb文件中加载以设置数据库.

我的理解是,当涉及到这条线

create_table "queue_classic_jobs",force: true do |t|; end

Rspec运行一个

DROP TABLE "queue_classic_jobs"

命令.

它拖出了这个错误

PG::DependentObjectsStillExist: ERROR:  cannot drop table queue_classic_jobs because 
other objects depend on it (ActiveRecord::StatementInvalid)
DETAIL:  function lock_head(character varying) depends on type queue_classic_jobs
function lock_head(character varying,integer) depends on type queue_classic_jobs
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
: DROP TABLE "queue_classic_jobs"

它看起来像我必须制作rspec

DROP TABLE "queue_classic_jobs" CASCADE

但是怎么样?

解决方法

你在运行Rails> = 4.1吗?有一个新功能,ActiveRecord尝试让您的测试架构与schema.rb保持同步,而无需重新加载整个数据库.你可以在这里阅读: http://guides.rubyonrails.org/4_1_release_notes.html#railties-notable-changes.

不幸的是它不适用于外键:https://github.com/rails/rails/issues/14708.您可以通过在config / environments / test.rb末尾添加此行来禁用它:

config.active_record.maintain_test_schema = false

猜你在找的Ruby相关文章