我最近在新机器上设置了Rails开发环境。我现在正在尝试运行应用程序的测试套件,但不断出现数据库错误。
Failure/Error: user = FactoryGirl.create(:user)
PG::ConnectionBad:
FATAL: database "test-db" does not exist
我的database.yml文件已正确设置。我已经运行psql -l
并且test-db确实存在,并且通过运行rake db:create
来确认这一点,我得到一个'已存在'消息。
我已经运行rake db:migrate
和rake:test:prepare
,但错误仍然存在。
我的测试设置如下
group :test do
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'capybara'
gem 'guard-rspec'
gem 'spork-rails'
gem 'guard-spork'
end
我对开发数据库没有任何问题。
为什么我得到db不存在错误,我该怎么做才能调试它?
答案 0 :(得分:6)
首先尝试运行:
rake db:create
答案 1 :(得分:3)
我会添加帮助我的解决方案(如果有人遇到此问题)。我不得不跑:
bundle exec rake db:setup
这将重新创建数据库并运行任何迁移。
答案 2 :(得分:2)
经过大量的反复试验,我终于设法让测试数据库正常运行。如果其他人遇到此问题,请留下以下内容。
问题是database.yml中的用户名不正确(虽然我确实更改了这些值,但我认为这不是原因,因为开发和测试之前都使用相同的用户名。)
或者在其他地方ENV["DATABASE_URL"] = "postgres://localhost/test_db"
设置的配置var中的小拼写错误。这应该是test-db
。