如何在测试套件中调试"数据库不存在"错误?

And*_*vey 2 rspec ruby-on-rails capybara factory-bot

我最近在新机器上设置了Rails开发环境.我现在正在尝试运行应用程序的测试套件,但不断收到数据库错误.

Failure/Error: user = FactoryGirl.create(:user)
PG::ConnectionBad:
FATAL:  database "test-db" does not exist
Run Code Online (Sandbox Code Playgroud)

我的database.yml文件设置正确.我已经运行psql -l并且test-db确实存在,并且通过运行rake db:create我收到"已存在"消息的位置来确认.

我已经运行rake db:migraterake:test:prepare,但错误依然存在.

我的测试设置如下

group :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
  gem 'capybara'
  gem 'guard-rspec'
  gem 'spork-rails'
  gem 'guard-spork'
end 
Run Code Online (Sandbox Code Playgroud)

我对开发数据库没有任何问题.

为什么我得到一个db不存在错误,我该怎么做才能调试这个?

小智 7

首先尝试运行:

rake db:create
Run Code Online (Sandbox Code Playgroud)


小智 5

我将添加对我有帮助的解决方案(如果有人遇到这个问题)。我不得不跑:

bundle exec rake db:setup

这将重新创建数据库并运行所有迁移。