sql >> Database teknologi >  >> RDS >> Mysql

Såning af en MySQL DB til en dockeriseret Django-app

MySQL (og varianter som Percona Server) giver mulighed for at se en database ved første containerstart beskrevet i afsnittet "Initialisering af en ny instans" i docker hub-side .

En Dockerfil, der bruger denne teknik, vil se sådan ud

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

Bemærk:den efterfølgende skråstreg er vigtig.

Når du docker run dette billede vil docker oprette containeren, entdocker. -entrypoint.sh vil udføre sql-scriptet, og så vil containeren være klar til at betjene data.

Data vil forblive ved genstart af beholderen - frødataene og efterfølgende ændringer.

Du kan genbruge containeren for hurtigere opstartstider - efterfølgende containerstarter behøver ikke at initialisere databasen eller seede dataene. Når du har brug for uberørte data, skal du slette containeren og docker run billedet igen.

Når du sletter containeren, skal du huske at slette docker-volumenet, der indeholder db-dataene:docker rm -v $CONTAINER_NAME .

Jeg bruger denne metode til at levere standarddata til sprog/ramme POC'er samt CI/CD. Initialisering af en ny database og seeding af store mængder data kan tage et par minutter, så du vil have noget logik til at sætte automatiske operationer på pause, indtil du kan oprette en db-forbindelse.

Håber dette hjælper dig på vej.




  1. MySQL SHA() virker ikke

  2. Slut dig til os i Amsterdam til et møde med OptimaData &VidaXL

  3. Microsoft Access Web App vs Desktop Database

  4. Kald til en medlemsfunktion addEagerConstraints() på float LARAVEL