From 66831cd2f057403a2196b88afcb54e5cf0bf4ea6 Mon Sep 17 00:00:00 2001 From: Alexander Borg Date: Sat, 20 Sep 2025 22:46:48 +0200 Subject: [PATCH] Fix jwt-token --- server/docker-entrypoint.sh | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/server/docker-entrypoint.sh b/server/docker-entrypoint.sh index 23c247d..293d8f1 100644 --- a/server/docker-entrypoint.sh +++ b/server/docker-entrypoint.sh @@ -15,15 +15,36 @@ while ! nc -z postgres 5432; do done echo "Database is ready!" -# Run database migrations as nodejs user -echo "Running database migrations..." -su-exec nodejs npm run db:migrate - -# Check if migrations were successful -if [ $? -eq 0 ]; then - echo "Database migrations completed successfully" +# Check if this is a fresh database by looking for the devices table +echo "Checking database state..." +if su-exec nodejs node -e " +const { Sequelize } = require('sequelize'); +require('dotenv').config(); +const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { + host: process.env.DB_HOST, port: process.env.DB_PORT, dialect: 'postgres', logging: false +}); +sequelize.authenticate().then(() => { + return sequelize.getQueryInterface().describeTable('devices'); +}).then(() => { + console.log('TABLES_EXIST'); + process.exit(0); +}).catch(() => { + console.log('FRESH_DATABASE'); + process.exit(0); +}); +" | grep -q "FRESH_DATABASE"; then + echo "Fresh database detected. Running initial setup..." + su-exec nodejs npm run db:setup else - echo "Database migrations failed" + echo "Existing database detected. Running migrations..." + su-exec nodejs npm run db:migrate +fi + +# Check if setup/migrations were successful +if [ $? -eq 0 ]; then + echo "Database initialization completed successfully" +else + echo "Database initialization failed" exit 1 fi