38 lines
1.4 KiB
YAML
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 }
|