postgresql数据库迁移错误:PG :: ConnectionBad:fe_sendauth:没有提供密码

时间:2015-09-11 17:47:36

标签: ruby-on-rails postgresql database-migration

我正在尝试在我的rails应用中运行rake db:migrate,但收到以下错误:

PG::ConnectionBad: fe_sendauth: no password supplied

我的database.yml如下:

<%
  branch = `git symbolic-ref HEAD 2>/dev/null`.chomp.sub('refs/heads/', '')
  branch = 'master' if branch.empty?
  suffix = branch == 'master' || branch.starts_with?('hotfix') ? '' : "_" + `git config --local --get offgrid.databases.#{branch.gsub(/[^a-zA-Z0-9]/,'')}`.strip
  suffix = ENV['DB_SUFFIX'] if ENV['DB_SUFFIX']
  puts "Database is 'offgrid_dev#{suffix}'" if Rails.env.development?
%>

development:
  adapter: postgresql
  database: offgrid_dev<%= suffix %>
  host: localhost
  encoding: unicode
  pool: 5
  password: 1

test:
  adapter: postgresql
  database: offgrid_test<%= suffix %><%= ENV['TEST_ENV_NUMBER'] %>
  host: localhost
  encoding: unicode
  pool: 5
  password: 1

这里更令人困惑的是,当我尝试按以下方式迁移我的测试数据库时:

rake db:migrate RAILS_ENV=test

我的测试数据库成功迁移,没有给出密码错误。

这非常令人困惑,因为我对测试和开发环境的配置或多或少都相同。

我的第一个问题是为什么会这样?

更重要的是,我如何克服这个问题?

我尝试将密码更改为空,使用psql控制台将密码设置为:\password <username>,然后点击返回,不输入新密码,确认,然后运行迁移,没有成功。我还尝试在将环境指定为:rake db:migrate RAILS_ENV=development时运行迁移,但也没有成功

我在做什么,我怎么能搞定?

非常感谢所有人的帮助。

PS:我的操作系统是ubuntu

1 个答案:

答案 0 :(得分:1)

Whao ...在stackoverflow上搜索更多信息后,我得到this question,其中指的是this documentation

在此之后,如the documentation中所述,使用默认.pgpassusername配置我的password文件,一切正常!!!!

虽然,我仍然不明白为什么以前在我的测试环境数据库中工作,而不是开发环境数据库。