ordinarthur-os/deploy/k8s/migrate.job.yaml
2026-04-16 16:23:01 +02:00

38 lines
1.4 KiB
YAML

# 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 }