47

私は以前に質問をしましたが、回答がありませんでした。

基本的に、やろうとするとエラーが発生invalid database urlしますheroku db:push

データベースの URL を明示的に提供してみることができると考えました。

私は試した:

heroku db:push postgres://postgres@localhost/myrailsdb

しかし、それはエラーを出しました:

Failed to connect to database:
  Sequel::DatabaseConnectionError -> PGError fe_sendauth: no password supplied

ユーザー名とパスワードを提供するための形式は何ですか?

4

5 に答える 5

68

試してみてくださいheroku db:push postgres://username:password@localhost/myrailsdb

于 2010-01-30T16:01:26.633 に答える
14

Rubyスクリプトでそれを行う方法は次のとおりです。

# Connect to database.
uri = URI.parse(ENV['DATABASE_URL'])
postgres = PG.connect(uri.hostname, uri.port, nil, nil, uri.path[1..-1], uri.user, uri.password)

# List all tables.
tables = postgres.exec('SELECT * FROM pg_catalog.pg_tables')
tables.num_tuples.times do |i|
  p tables[i]
end
于 2014-03-04T15:40:27.180 に答える
5

postgresql 構成 (pg_hba.conf) ファイルを編集し、「ホスト」タイプのメソッドを「信頼」に変更します。ただし、これは安全ではないことに注意してください。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 md5

postgresql サーバーを再起動し、コマンドを再実行します

$ heroku db:push postgres://postgres@localhost/myrailsdb

これが私の答えへの参照です: https://stackoverflow.com/a/7667344/181677

于 2012-02-03T02:41:34.450 に答える
1

Heroku cli はコマンドを変更しました。

heroku pg:push postgres://username:password@localhost/myrailsdb
于 2015-04-13T21:52:30.980 に答える