1. ホーム
  2. ruby-on-rails

[解決済み] rake aborted! PG::ConnectionBad: fe_sendauth: no password supplied タスク。TOP => db:migrate (タスクを --trace で実行すると完全なトレースが表示されます)

2022-02-14 06:05:48

質問事項

を試したところ、以下のようになりました。 rake db:migrate

rake aborted!
PG::ConnectionBad: fe_sendauth: no password supplied

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

また、自分のローカルホストにアクセスした場合にも同様のメッセージが表示されます。

fe_sendauth: no password supplied

railsサーバとrailsコンソールも動作しません。

いろいろ試してみて、現在私のgemfileはこんな感じです。

source 'https://rubygems.org'
ruby '2.0.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.3'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
gem 'devise'


gem 'pg'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end


group :production do
  gem 'rails_12factor'
end

と私の database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  username: myapp
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: myapp_test
  pool: 5
  username: myapp
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: myapp_production
  pool: 5
  username: myapp
  password:

何が問題なのでしょうか?ローカルでpostgresのテーブルにアクセスするために、ある種のパスワードが必要なようです。私のアプリはHerokuを通して実行されている場合は正常に動作します。だから私はHerokuを開いて、私のアプリが意図しているように新しいリンクや投稿を送信することができますが、それはローカルで動作しません。

解決方法を教えてください。

ローカルマシンの場合 testdevelopment のセクションは database.yml を変更する必要があります。 username をログインしているユーザー名に変更します。railsジェネレータでは、アプリ名と同じになるため、うまくいきません。本番環境ではHeroku上で実行され、デプロイ時に自動的にこの設定が変更されるため、問題にはなりません。