Skip to content

Commit baf924d

Browse files
authored
Merge pull request #18 from touchmegit1/dev
feat: add auto-bootstrap seed functionality for empty database tables…
2 parents 7b84a73 + a51058e commit baf924d

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

.github/workflows/cd.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)