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

Jak radzić sobie z ewolucją bazy danych Play Framework 2 w środowisku produkcyjnym

Niestety Ebean może tworzyć tylko CREATE DDL (a nie UPDATE DDL ) (zgodnie z odpowiedzią w ich grupie), dlatego musisz jak najszybciej przejść na ręczne ewolucje.

niektóre zasady:

  1. Zawsze twórz kopię zapasową aktualnej bazy danych przed wprowadzeniem jakichkolwiek zmian :)
  2. Wtyczka ebean odtwarza całe DDL, jeśli ma tylko 1.sql ewolucja przez nią stworzona
  3. Musisz usunąć dwa pierwsze komentarze z pliku 1.sql i zacznij pisać własne ewolucje z kolejnymi numerami 2.sql , 3.sql itp. Spróbuj umieścić jak najwięcej modeli/pól przed przejściem na ewolucje ręczne. Największa część zostanie wykonana automatycznie przez wtyczkę.
  4. ręczne ewolucje powinny zawierać ALTERS do istniejących tabel/kolumn zamiast DROP/CREATE, powinny mieć oba:Ups i Downs dla każdej zmiany.
  5. spróbuj umieścić jak najwięcej zmian w każdej ewolucji, łatwiej jest zarządzać niż pisać oddzielną ewolucję dla każdej małej zmiany.

De facto czasami po prostu łatwiej jest zmodyfikować strukturę DB za pomocą interfejsu użytkownika DB, w każdym razie działa to głównie dla pojedynczego programisty... kiedy musisz udostępnić swój kod innym programistom piszącym ewolucje, będzie lepszym rozwiązaniem.

Jeśli po pewnym czasie dodasz kolejną 'dużą' porcję nowych modeli, możesz ponownie włączyć tymczasowe auto DDL i używając lokalnego git'u tylko do kopiowania nowych części. Następnie wróć do własnej rewolucji i wklej nowe części wygenerowane przez wtyczkę Ebean.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zakres Rails - gdzie w dokładnych dopasowaniach

  2. Jak usunąć zduplikowane wiersze bez unikalnego identyfikatora

  3. Jak przyspieszyć działanie wstawiania w PostgreSQL

  4. Jak uzyskać tekst SQL z wyzwalacza zdarzenia Postgres?

  5. Jak ZMIENIĆ tabelę PostgreSQL i uczynić kolumnę unikalną?