2024-07-08 11:44:39 -04:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Function to check PostgreSQL availability
|
|
|
|
check_postgres() {
|
|
|
|
PGPASSWORD=$PGPASSWORD psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -c '\q' >/dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
# Wait for PostgreSQL to become available
|
|
|
|
until check_postgres; do
|
|
|
|
>&2 echo "PostgreSQL is unavailable - sleeping"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
|
|
|
|
>&2 echo "PostgreSQL is up - continuing..."
|
|
|
|
|
2024-08-23 23:49:05 -04:00
|
|
|
# run sql commands
|
|
|
|
# psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -f /app/backend/init-postgis.sql
|
|
|
|
|
2024-07-08 11:44:39 -04:00
|
|
|
# Apply Django migrations
|
|
|
|
python manage.py migrate
|
|
|
|
|
2024-08-17 08:00:01 -04:00
|
|
|
# Create superuser if environment variables are set and there are no users present at all.
|
2024-07-08 11:44:39 -04:00
|
|
|
if [ -n "$DJANGO_ADMIN_USERNAME" ] && [ -n "$DJANGO_ADMIN_PASSWORD" ]; then
|
|
|
|
echo "Creating superuser..."
|
|
|
|
python manage.py shell << EOF
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
User = get_user_model()
|
2024-08-17 08:00:01 -04:00
|
|
|
if User.objects.count() == 0:
|
2024-07-08 11:44:39 -04:00
|
|
|
User.objects.create_superuser('$DJANGO_ADMIN_USERNAME', '$DJANGO_ADMIN_EMAIL', '$DJANGO_ADMIN_PASSWORD')
|
|
|
|
print("Superuser created successfully.")
|
|
|
|
else:
|
|
|
|
print("Superuser already exists.")
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
|
2024-08-21 13:14:38 -04:00
|
|
|
# Sync the countries and world travel regions
|
|
|
|
python manage.py worldtravel-seed --force
|
|
|
|
|
2024-07-08 11:44:39 -04:00
|
|
|
# Start Django server
|
2024-07-09 08:15:11 -04:00
|
|
|
python manage.py runserver 0.0.0.0:8000
|