How to connect to postgresql using url

前端 未结 5 1829
予麋鹿
予麋鹿 2020-12-28 12:35

I had asked an earlier question which did not get any replies.

Basically I get an error invalid database url when I try to do heroku db:push

相关标签:
5条回答
  • 2020-12-28 12:53

    according to documentation

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

    examples

    postgresql://
    postgresql://localhost
    postgresql://localhost:5432
    postgresql://localhost/mydb
    postgresql://user@localhost
    postgresql://user:secret@localhost
    postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp
    postgresql://localhost/mydb?user=other&password=secret
    
    0 讨论(0)
  • 2020-12-28 12:58

    Edit your postgresql configuration (pg_hba.conf) file and change 'host' type method to 'trust'. But be aware that this is not secure.

    # 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
    

    Restart your postgresql server and re-run the command

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

    Here is the reference to my answer: https://stackoverflow.com/a/7667344/181677

    0 讨论(0)
  • 2020-12-28 12:59

    Try heroku db:push postgres://username:password@localhost/myrailsdb.

    0 讨论(0)
  • 2020-12-28 13:15

    Heroku cli has changed the command.

    heroku pg:push postgres://username:password@localhost/myrailsdb
    
    0 讨论(0)
  • 2020-12-28 13:19

    Here's how to do it in a 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
    
    0 讨论(0)
提交回复
热议问题