Files

52 lines
1.2 KiB
Bash
Raw Permalink Normal View History

2026-05-11 03:27:21 +03:30
#!/bin/sh
set -e
wait_for_db() {
python - <<'PY'
import os
import socket
import sys
import time
host = os.environ.get("DB_HOST", "db")
port = int(os.environ.get("DB_PORT", "3306"))
deadline = time.time() + 90
while time.time() < deadline:
try:
with socket.create_connection((host, port), timeout=3):
print(f"Database is reachable at {host}:{port}")
sys.exit(0)
except OSError as exc:
print(f"Waiting for database {host}:{port}... {exc}")
time.sleep(2)
print(f"Timed out waiting for database {host}:{port}", file=sys.stderr)
sys.exit(1)
PY
}
if [ "${SKIP_MIGRATE}" != "1" ]; then
wait_for_db
echo "Running migrations..."
python manage.py repair_location_tables
python manage.py migrate --noinput
echo "Migrations done."
fi
if [ -n "${DEVELOP}" ] && [ "${SKIP_MIGRATE}" != "1" ]; then
echo "DEVELOP is set. Seeding demo plant, location_data, weather_data, and farm_data..."
python manage.py seed_plants
python manage.py seed_location_data
python manage.py seed_weather_data
python manage.py seed_farm_data
echo "Demo seeders done."
fi
echo "Collecting static files..."
python manage.py collectstatic --noinput
echo "Static files ready."
echo "Starting command: $*"
exec "$@"