简体   繁体   中英

Flyway cannot connect to db after Heroku Postgres upgrade

I am upgrading my heroku database from a hobby dev to Standard 0 (using the official instructions https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-pg-copy-default ).

All went well, until I promoted the new database and restarted the app. I then get the following error:

o.s.boot.SpringApplication               : Application startup failed
...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
...
Caused by: org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
...
Caused by: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "54.xxx.xx.xxx", user "u94bf9vxxxxxx", database "d2mqk0b6xxxxxx", SSL off
...

If I swap back to the old database again, everything works again. The only thing that I am changing is the promoted database.

Is there a difference between connecting to hobby and standard databases that I need to be aware of?

The relevant part of my application.yml looks as follows:

spring:
    datasource:
        driverClassName: org.postgresql.Driver
        url: ${JDBC_DATABASE_URL} 
        username: ${JDBC_DATABASE_USERNAME}
        password: ${JDBC_DATABASE_PASSWORD}
flyway:
    enabled: true
    locations: classpath:db/migrations

Any suggestions on how I can debug this would be very welcome too.

Looks like you aren't connecting with SSL where it is required by Heroku PostgreSQL installs.

See Herokus documentation on SSL for PostgreSQL .

See also Herokus documentation for enabling SSL on JDBC connections.

You will need to add something like &ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory to your JDBC URL.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM