Add bulletproof startup script to fix django_site migration issues

- Create startup.sh with proper step-by-step setup and clear logging
- Explicit sites migration before configure_site command
- Better error handling with set -e
- Clean command structure in docker-compose
- This should resolve the 'relation django_site does not exist' error

The startup script runs migrations in correct order and provides clear feedback.
This commit is contained in:
amitrana01 2025-09-11 18:42:15 +05:30
parent 7a47ca4058
commit 3827944aa5
2 changed files with 33 additions and 7 deletions

View File

@ -17,6 +17,8 @@ services:
- db - db
networks: networks:
- dokploy-network - dokploy-network
command: >
sh -c "chmod +x /app/startup.sh && /app/startup.sh"
db: db:
image: postgres:15-alpine image: postgres:15-alpine
@ -35,10 +37,3 @@ volumes:
networks: networks:
dokploy-network: dokploy-network:
external: true external: true
command: >
sh -c "python manage.py migrate &&
python manage.py create_groups &&
python manage.py setup_social_apps &&
python manage.py configure_site --domain=dt.netcoptech.com --name='Django Template' &&
python manage.py collectstatic --noinput &&
gunicorn --bind 0.0.0.0:8000 --workers 3 --timeout 120 django_project.wsgi:application"

31
startup.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/bash
set -e
echo "🚀 Starting Django application setup..."
echo "⏳ Waiting for database..."
sleep 5
echo "📦 Running database migrations..."
python manage.py migrate --noinput
echo "🌐 Ensuring Sites framework is set up..."
python manage.py migrate sites --noinput
echo "👥 Creating user groups..."
python manage.py create_groups
echo "🔗 Setting up social applications..."
python manage.py setup_social_apps
echo "🏠 Configuring site domain..."
python manage.py configure_site --domain=dt.netcoptech.com --name="Django Template"
echo "📁 Collecting static files..."
python manage.py collectstatic --noinput
echo "✅ Setup completed successfully!"
echo "🚀 Starting Gunicorn server..."
exec gunicorn --bind 0.0.0.0:8000 --workers 3 --timeout 120 django_project.wsgi:application