PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Błędy w ewolucjach na Heroku

Jeśli wysyłasz do Heroku 1.sql plik wygenerowany dla H2 , istnieje duża szansa, że ​​będą kolidować, zamiast tego ustaw adres URL Heroku w application.conf jako db.default.url i uruchom go najpierw w trybie deweloperskim na hoście lokalnym, aby wygenerować poprawny kod Postres SQL. Będziesz także musiał skomentować db.default.user i db.default.password ustawienia, ponieważ adres URL Heroku zawiera już te informacje.

Jeśli nie znasz adresu URL bieżącego połączenia, znajdziesz go pod adresem:

https://postgres.heroku.com/ -> YourDBs -> nazwa bazy danych -> Connection settings -> JDBC URL

Aby połączyć się z hosta lokalnego (lub innej maszyny, nie znajdującej się w przestrzeni Heroku) musisz dodać ten parametr do adresu URL:

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

Dzięki takiemu podejściu możesz przetestować swoją aplikację lokalnie z nawiązanym połączeniem ze zdalną bazą danych Heroku (nie zdziw się - ta kombinacja będzie znacznie wolniejsza niż praca z local app + local DB lub Heroku app + Heroku DB ) w każdym razie do testowania jest to lepsze niż wielokrotne wypychanie małych poprawek do chmury.

Będziesz także mógł wykonywać ewolucje z lokalnego hosta - bez wypychania kodu do Heroku, a jest to naprawdę krótsze podejście, jeśli masz problemy z SQL.

Dodatkowo jest to dobra okazja, aby włączyć logowanie SQL w trybie lokalnego dewelopera i polować na nadmiarowe zapytania SQL, jeśli usuniesz wszystkie niepotrzebne zapytania i będziesz zadowolony na localhoście, po wdrożeniu na Heroku będziesz po prostu znacznie bardziej zadowolony:)

Resetuj

Jeśli utworzysz właściwy 1.sql niż prawdopodobnie będziesz musiał zresetować bazę danych zawierającą nieprawidłową strukturę (zakładam, że to jeszcze nie problem, ponieważ po prostu przenosisz się z lokalnego do Heroku). Najpierw znajdź nazwę bazy danych dla bieżącej aplikacji (z bash, w folderze aplikacji):

heroku pg

A następnie zresetuj go za pomocą (spowoduje to zniszczenie wszystkich danych, więc najpierw rozważ utworzenie kopii zapasowej, jeśli nie chcesz stracić danych!):

heroku pg:reset HEROKU_DATABASE_SOMEBASE


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj krótką nazwę miesiąca w PostgreSQL

  2. problem z aliasem kolumny postgres

  3. PostgreSQL:Zapytanie nie ma miejsca docelowego dla danych wynikowych

  4. Jak utworzyć histogram w PostgreSQL

  5. Powolne proste zapytanie o aktualizację w bazie danych PostgreSQL z 3 milionami wierszy