File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -234,6 +234,31 @@ jobs:
234234 eval "$MIGRATION_COMMAND"
235235 fi
236236
237+ # Auto-bootstrap seed when DB is empty (prevents blank app after deploy/reset).
238+ get_table_count() {
239+ table="$1"
240+ sudo docker compose -f docker-compose.prod.yml exec -T mysql \
241+ mysql -N -s -uroot -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" -e "SELECT COUNT(*) FROM $table;" 2>/dev/null | tr -d '\r'
242+ }
243+
244+ PRODUCTS_COUNT="$(get_table_count products || echo 0)"
245+ VARIANTS_COUNT="$(get_table_count product_variants || echo 0)"
246+ STOCK_COUNT="$(get_table_count inventory_stock || echo 0)"
247+
248+ echo "Post-deploy counts: products=$PRODUCTS_COUNT, variants=$VARIANTS_COUNT, inventory_stock=$STOCK_COUNT"
249+
250+ if [ "${PRODUCTS_COUNT:-0}" = "0" ] || [ "${VARIANTS_COUNT:-0}" = "0" ]; then
251+ echo "Detected empty critical tables. Running reset-db-and-seed.sh..."
252+ if [ -f "./deploy/scripts/reset-db-and-seed.sh" ]; then
253+ sudo chmod +x ./deploy/scripts/reset-db-and-seed.sh
254+ sudo DEPLOY_PATH="$DEPLOY_PATH" COMPOSE_FILE="$DEPLOY_PATH/docker-compose.prod.yml" ENV_FILE="$ENV_FILE" bash ./deploy/scripts/reset-db-and-seed.sh
255+ # Ensure services are up after seed
256+ sudo env REGISTRY="$REGISTRY" IMAGE_NAMESPACE="$IMAGE_NAMESPACE" IMAGE_TAG="$TARGET_TAG" DB_USERNAME="$DB_USERNAME" DB_PASSWORD="$DB_PASSWORD" MYSQL_DATABASE="$MYSQL_DATABASE" MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD" docker compose -f docker-compose.prod.yml up -d --remove-orphans
257+ else
258+ echo "Seed script not found: ./deploy/scripts/reset-db-and-seed.sh"
259+ fi
260+ fi
261+
237262 MAX_RETRIES=12
238263 RETRY_DELAY=10
239264 ATTEMPT=1
You can’t perform that action at this time.
0 commit comments