Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Seding bazy danych MySQL dla zdokeryzowanej aplikacji Django

MySQL (i jego warianty, takie jak Percona Server) zapewniają funkcję inicjowania bazy danych przy pierwszym uruchomieniu kontenera, opisaną w sekcji „Inicjowanie nowej instancji” w strona centrum dokowania .

Plik Dockerfile wykorzystujący tę technikę będzie wyglądał jak

FROM mysql:8
COPY seed-data.sql /docker-entrypoint-initdb.d/

Uwaga:końcowy ukośnik katalogu jest ważny.

Kiedy docker run ten obraz, docker utworzy kontener, docker-entrypoint.sh -entrypoint.sh wykona skrypt sql, a następnie kontener będzie gotowy do obsługi danych.

Dane zostaną zachowane po ponownym uruchomieniu kontenera — dane początkowe i późniejsze modyfikacje.

Możesz ponownie użyć kontenera, aby przyspieszyć uruchamianie — kolejne uruchomienia kontenera nie będą wymagały inicjowania bazy danych ani inicjowania danych. Gdy potrzebujesz nieskazitelnych danych, usuń kontener i docker run obraz ponownie.

Podczas usuwania kontenera pamiętaj o usunięciu woluminu dockera zawierającego dane bazy danych:docker rm -v $CONTAINER_NAME .

Używam tej metody, aby dostarczyć standardowe dane dla POC języka / frameworka, a także CI/CD. Inicjowanie nowej bazy danych i umieszczanie dużych ilości danych może zająć kilka minut, więc będziesz potrzebować pewnej logiki, aby wstrzymać automatyczne operacje, dopóki nie uda się nawiązać połączenia z bazą danych.

Mam nadzieję, że to pomoże ci w drodze.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metoda Illuminate\Support\Collection::save nie istnieje w Laravel

  2. Ile kolumn tabeli bazy danych jest za dużo?

  3. Pandy Pythona do_sql 'dołącz'

  4. Policz niepuste pola mysql

  5. Puste wartości są dodawane do wszystkich wierszy mysql zamiast tylko do wiersza docelowego