Add AMEV Gleichzeitigkeitsfaktor-Auswähler und einklappbare Seitenleiste
- Gzf-Picker-Modal mit AMEV-Tabelle 3 (Planungshilfe für elektrische Leistungsbilanzen) im Projektgerät-Modal und im globalen Geräteformular - Docker-Deploy-Tooling (docker-start.sh, run-migrations.js) für den produktiven Container - Seitenleiste ist jetzt einklappbar (Icon-only, Zustand in localStorage)
This commit is contained in:
parent
74bea1a3c9
commit
9bd22dfcb7
11 changed files with 349 additions and 41 deletions
16
scripts/docker-start.sh
Normal file
16
scripts/docker-start.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
echo "Running migrations..."
|
||||
node scripts/run-migrations.js
|
||||
|
||||
echo "Starting API server on :3000..."
|
||||
node dist/server/index.js &
|
||||
|
||||
echo "Waiting for API..."
|
||||
until node -e "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode===200?0:1)).on('error',()=>process.exit(1))" 2>/dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "Starting Next.js on :3001..."
|
||||
exec node_modules/.bin/next start -p 3001
|
||||
16
scripts/run-migrations.js
Normal file
16
scripts/run-migrations.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
const { migrate } = require('drizzle-orm/better-sqlite3/migrator');
|
||||
const { drizzle } = require('drizzle-orm/better-sqlite3');
|
||||
const Database = require('better-sqlite3');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const dataDir = path.resolve('data');
|
||||
if (!fs.existsSync(dataDir)) fs.mkdirSync(dataDir, { recursive: true });
|
||||
|
||||
const sqlite = new Database(path.join(dataDir, 'leistungsbilanz.db'));
|
||||
const db = drizzle(sqlite);
|
||||
|
||||
migrate(db, { migrationsFolder: path.resolve('src/db/migrations') });
|
||||
sqlite.close();
|
||||
|
||||
console.log('Migrations applied');
|
||||
Loading…
Add table
Add a link
Reference in a new issue