diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c6974ab..13cd4e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -102,6 +102,26 @@ deploy:vps: echo "Cleaning up Docker networks..." docker network prune -f || true + # Apply database migrations if they exist + echo "Checking for database migrations..." + if [ -d "LittleShop/Migrations" ] && [ -n "\$(ls -A LittleShop/Migrations/*.sql 2>/dev/null)" ]; then + echo "Found migration files, applying to database..." + for migration in LittleShop/Migrations/*.sql; do + migration_name=\$(basename "\$migration") + echo "Applying migration: \$migration_name" + docker run --rm -v littleshop_littleshop_data:/data -v \$(pwd)/LittleShop/Migrations:/migrations alpine:latest sh -c " + apk add --no-cache sqlite > /dev/null 2>&1 + echo 'Creating backup before migration...' + cp /data/littleshop-production.db /data/littleshop-production.db.backup-\\\$(date +%Y%m%d-%H%M%S) 2>/dev/null || true + echo 'Applying migration: \$migration_name' + sqlite3 /data/littleshop-production.db < /migrations/\$migration_name + echo 'Migration applied successfully' + " + done + else + echo "No migration files found, skipping..." + fi + # Start services with new images echo "Starting services with new images..." docker-compose up -d