簡體   English   中英

PG :: DependentObjectsStillExist:使用rspec時出錯

[英]PG::DependentObjectsStillExist: ERROR when using 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM