# Relancer après chaque déploiement qui contient une migration : # kubectl -n ordinarthur-os delete job migrate --ignore-not-found # kubectl -n ordinarthur-os apply -f deploy/k8s/migrate.job.yaml apiVersion: batch/v1 kind: Job metadata: name: migrate namespace: ordinarthur-os spec: backoffLimit: 2 ttlSecondsAfterFinished: 86400 template: spec: restartPolicy: OnFailure imagePullSecrets: - name: gitea-registry containers: - name: migrate image: git.arthurbarre.fr/ordinarthur/ordinarthur-os-api:latest imagePullPolicy: Always envFrom: - secretRef: { name: ordinarthur-os-secrets } # Drizzle migrator via node inline — les migrations SQL sont dans /app/packages/db/migrations command: - node - -e - | const { createDb } = require('@ordinarthur-os/db'); const { migrate } = require('drizzle-orm/postgres-js/migrator'); const path = require('path'); const { db, close } = createDb(process.env.DATABASE_URL); migrate(db, { migrationsFolder: path.join('/app', 'packages/db/migrations') }) .then(() => { console.log('[migrate] done'); return close(); }) .catch(e => { console.error(e); process.exit(1); }); resources: requests: { cpu: 50m, memory: 128Mi } limits: { cpu: 300m, memory: 256Mi }