sql >> Base de Datos >  >> RDS >> PostgreSQL

Errores en evoluciones en Heroku

Si está enviando a Heroku 1.sql archivo generado para H2 , existe una gran posibilidad de que entren en conflicto; en su lugar, configure la URL de Heroku en application.conf como db.default.url y ejecútelo en modo dev en localhost primero para generar Postres SQL válido. También deberá comentar el db.default.user y db.default.password configuración, ya que la URL de Heroku ya contiene esta información.

Si no conoce la URL de la conexión actual, la encontrará en:

https://postgres.heroku.com/ -> YourDBs -> nombre-bd -> Connection settings -> JDBC URL

Para conectarse desde localhost (u otra máquina, no en el espacio de Heroku) debe agregar este parámetro a la URL:

&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

Gracias a este enfoque, puede probar su aplicación localmente con una conexión establecida a la base de datos remota de Heroku (no se sorprenda, esa combinación será mucho más lenta que trabajar con local app + local DB o Heroku app + Heroku DB ) de todos modos, para probarlo es mejor que empujar repetidamente pequeñas correcciones a la nube.

También podrá realizar evoluciones desde localhost, sin enviar el código a Heroku, y es un enfoque realmente más corto si tiene problemas en su SQL.

Además, es una buena ocasión para activar el registro SQL en el modo de desarrollo local y buscar consultas SQL redundantes, si eliminará todas las consultas innecesarias y estará satisfecho en localhost, después de implementarlo en Heroku, estará mucho más satisfecho:)

Restablecer

Si va a crear 1.sql adecuado que lo más probable es que necesite restablecer su base de datos que contiene una estructura no válida (ya que supongo que eso no es un problema todavía, ya que acaba de pasar de local a Heroku). Primero busque un nombre de la base de datos para la aplicación actual (con bash, en la carpeta de la aplicación):

heroku pg

Y luego reinícielo con (¡destruirá todos los datos, así que considere hacer una copia de seguridad primero si no quiere perder sus datos!):

heroku pg:reset HEROKU_DATABASE_SOMEBASE