Ответ 1
Попробуйте heroku db:push postgres://username:[email protected]/myrailsdb
.
Я спросил более раннюю 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
Каков формат предоставления имени пользователя и пароля?
Попробуйте heroku db:push postgres://username:[email protected]/myrailsdb
.
Здесь, как это сделать в 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
Измените файл конфигурации 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/...
Heroku cli изменил команду.
heroku pg:push postgres://username:[email protected]/myrailsdb
согласно документации
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