Se você estiver enviando para Heroku
1.sql
arquivo gerado para H2
, há uma grande chance de que eles entrem em conflito, em vez disso, defina a url do Heroku em application.conf
como db.default.url
e execute-o no modo dev no host local primeiro para gerar um SQL Postres válido. Além disso, você precisará comentar o db.default.user
e db.default.password
configurações, pois a URL do Heroku já contém essa informação. Se você não souber o URL da conexão atual, você o encontrará em:
https://postgres.heroku.com/ ->
YourDBs
-> nome do banco de dados -> Connection settings
-> JDBC URL
Para conectar de localhost (ou outra máquina, não no espaço do Heroku) você precisa adicionar este parâmetro à URL:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Graças a essa abordagem, você pode testar seu aplicativo localmente com uma conexão estabelecida com o banco de dados remoto do Heroku (não se surpreenda - essa combinação será muito mais lenta do que trabalhar com
local app + local DB
ou Heroku app + Heroku DB
) de qualquer forma, para testar, é melhor do que enviar pequenas correções repetidamente para a nuvem. Além disso, você poderá realizar evoluções do localhost - sem enviar o código para o Heroku, e é uma abordagem realmente mais curta se você tiver problemas em seu SQL.
Além disso, é uma boa ocasião para ativar o log SQL no modo de desenvolvimento local e procurar consultas SQL redundantes, se você remover todas as consultas desnecessárias e ficar satisfeito no localhost, após a implantação no Heroku, você ficará muito mais satisfeito:)
Redefinir
Se você criar o
1.sql
adequado arquivo do que provavelmente você precisará redefinir seu banco de dados contendo estrutura inválida (como suponho que isso ainda não seja um problema, pois você acabou de passar do local para o Heroku). Primeiro encontre um nome do banco de dados para o aplicativo atual (com bash, na pasta do aplicativo):heroku pg
E, em seguida, redefina-o com (isso destruirá todos os dados, portanto, considere o backup primeiro se não quiser perder seus dados!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE