How to change DATABASE_URL for a heroku application

后端 未结 7 1763
醉话见心
醉话见心 2020-12-09 15:32

I wanted to use an external Database with my heroku application. But I\'m unable to edit the configuration cariables. I tried using GUI, Which says, Cannot overwrite attachm

相关标签:
7条回答
  • 2020-12-09 15:42

    Solved it. Just for the reference of the users who have the same issue or want to have a similar implementation. Here's the workaround which worked for me.

    Heroku no more overwrites databse.yml, so I just modified the DATBASE_URL in the database.yml and pushed it :)

    It worked too!

    Source : https://discussion.heroku.com/t/rails-4-1-database-yml-no-longer-overwritten-on-heroku/550

    0 讨论(0)
  • 2020-12-09 15:52

    Based on the Heroku docs this is how you would share a database with multiple apps.

    heroku addons:attach my-originating-app::DATABASE --app sushi
    
    0 讨论(0)
  • 2020-12-09 15:52

    In my case, I needed to launch an java spring boot application with my personal data base (postgres). I have an instance on AWS, and when loading the app, an error was occurring because it would connect without ssl.

    Considering this documentation (https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java#using-ssl-with-postgresql), it says:

    We used to suggest adding the URL parameter sslmode=disable to JDBC URLs. We now require use of SSL for all new Heroku Postgres databases. We will be enforcing use of SSL on all Heroku Postgres databases from March 2018. Please do not disable SSL for your database or your applications may break.

    So, resuming, step 1, I deleted my addon Heroku Postgres on Resources tab. Step 2, I changed my application.yml from:

    datasource:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://<url>:<port>/<dataBaseName>?createDatabaseIfNotExist=true&useSSL=false
        username: <user>
        password: <pass>
    

    to

    datasource:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://<url>:<port>/<dataBaseName>?createDatabaseIfNotExist=true&useSSL=false&sslmode=disable
        username: <user>
        password: <pass>
    

    I added "&sslmode=disable" at the end of url string.

    And finally, rebuild/deploy (which in my case is automatic after pushing into my repo on github).

    I hope this would help someone.

    Peace...

    0 讨论(0)
  • 2020-12-09 15:53

    An alternative method which does not require detaching (which may not be a desired outcome of the switch) is to simply attach the new database and then promote it, which the Heroku Documents explicitly states as a way to set the DATABASE_URL.

    heroku addons:attach heroku-postgresql -a <app_name>
    heroku pg:promote heroku-postgresql -a <app_name>
    
    0 讨论(0)
  • 2020-12-09 15:55

    After trying out most these answers, I came across an update in 2016, here: the database needs to be detached first, then update the variable of the DATABASE_URL.

    heroku addons:attach heroku-postgresql -a <app_name> --as HEROKU_DATABASE
    heroku addons:detach DATABASE -a <app_name>
    heroku config:add DATABASE_URL=
    
    0 讨论(0)
  • 2020-12-09 15:57

    I got the very same situation today when I need to change postgres to postgis. Detach doesn't work for me so I done this to database.yml:

    production:
    
      url: <%= ENV['DATABASE_URL'].sub(/^postgres/, "postgis") %>
    

    https://github.com/rgeo/activerecord-postgis-adapter/issues/214.

    0 讨论(0)
提交回复
热议问题