Подтвердить что ты не робот

Как подключиться к postgresql с помощью URL

Я спросил более раннюю question, в которой не было ответов.

В основном я получаю сообщение об ошибке invalid database url, когда я пытаюсь сделать heroku db:push.

Я решил, что могу попробовать явно предоставить URL-адрес базы данных.

Я пробовал:

heroku db:push postgres://[email protected]/myrailsdb

Но это дало ошибку:

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

Каков формат предоставления имени пользователя и пароля?

4b9b3361

Ответ 1

Попробуйте heroku db:push postgres://username:[email protected]/myrailsdb.

Ответ 2

Здесь, как это сделать в Ruby script:

# 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

Ответ 3

Измените файл конфигурации postgresql (pg_hba.conf) и измените метод типа "host" на "trust". Но имейте в виду, что это не безопасно.

# 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://[email protected]/myrailsdb

Вот ссылка на мой ответ: fooobar.com/questions/178222/...

Ответ 4

Heroku cli изменил команду.

heroku pg:push postgres://username:[email protected]/myrailsdb

Ответ 5

согласно документации

postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]

Примеры

postgresql://
postgresql://localhost
postgresql://localhost:5432
postgresql://localhost/mydb
postgresql://[email protected]
postgresql://user:[email protected]
postgresql://[email protected]/otherdb?connect_timeout=10&application_name=myapp
postgresql://localhost/mydb?user=other&password=secret