#!/bin/sh # LearnSpace — инициализация контейнера: применить миграции (идемпотентно), # при первом старте засеять права, затем запустить сервер. set -e cd /app/backend echo "[entrypoint] applying migrations..." node src/db/migrations-runner.js # Засев прав — только если реестр пуст (первый запуск): schema-check сервера # требует непустую role_permissions. Идемпотентно и безопасно при перезапусках. NEED_SEED=$(node -e "try{const {DatabaseSync}=require('node:sqlite');const db=new DatabaseSync(process.env.DB_PATH||'./data/learnspace.db');const n=db.prepare('SELECT COUNT(*) AS n FROM role_permissions').get().n;process.stdout.write(n>0?'0':'1')}catch(e){process.stdout.write('1')}") if [ "$NEED_SEED" = "1" ]; then echo "[entrypoint] seeding permissions (first run)..." node src/db/seed-permissions.js || echo "[entrypoint] seed-permissions skipped/failed (non-fatal)" fi echo "[entrypoint] starting server..." exec node src/server.js