# Einmalig VOR jedem Deployment (bzw. bei jedem neuen Image-Tag) ausfuehren: # kubectl delete job wabenhain-migrate -n wabenhain --ignore-not-found # kubectl apply -f k8s/04-migrate-job.yaml # kubectl wait --for=condition=complete job/wabenhain-migrate -n wabenhain --timeout=120s # "kubectl delete...--ignore-not-found" zuerst, weil Jobs nicht ueberschrieben # werden koennen (Kubernetes-Job-Objekte sind unveraenderlich) — ohne das # schlaegt ein erneutes "kubectl apply" mit demselben Namen fehl. # # Nutzt das ":migrate-"-Image aus der Gitea-Actions-Pipeline (hat die # Prisma-CLI + tsx an Bord, die "pnpm db:deploy"/"pnpm db:seed" brauchen — # das schlanke Laufzeit-Image aus 05-app-deployment.yaml bewusst nicht, # siehe Dockerfile). image: unten mit der tatsaechlichen Registry/Tag # ersetzen. apiVersion: batch/v1 kind: Job metadata: name: wabenhain-migrate namespace: wabenhain spec: backoffLimit: 2 template: spec: restartPolicy: Never containers: - name: migrate image: git.example.com/OWNER/wabenhain:migrate-REPLACE-ME # prisma migrate deploy (nicht "db push"): wendet die committeten # Migrationsdateien nicht-interaktiv an, das ist Prismas # vorgesehener Weg fuer Produktions-Deployments. db:seed danach # legt/erneuert nur das Admin-Konto + Beispieldaten, ist idempotent # (siehe prisma/seed.ts). command: ["sh", "-c", "pnpm db:deploy && pnpm db:seed"] envFrom: - configMapRef: name: wabenhain-config - secretRef: name: wabenhain-secrets