1010
1111# Start PostgreSQL database in Docker
1212echo " Starting PostgreSQL database in Docker..."
13- docker run -d \
14- --name postgres-demo \
15- -e POSTGRES_DB=demo \
16- -e POSTGRES_USER=admin \
17- -e POSTGRES_PASSWORD=admin \
18- -p 5439:5432 \
19- postgres:15
13+
14+ # Check if container exists and is running
15+ if docker ps --filter " name=postgres-demo" --filter " status=running" --format " {{.Names}}" | grep -q " postgres-demo" ; then
16+ echo " PostgreSQL container is already running"
17+ elif docker ps -a --filter " name=postgres-demo" --format " {{.Names}}" | grep -q " postgres-demo" ; then
18+ echo " PostgreSQL container exists but is stopped, starting it..."
19+ docker start postgres-demo
20+ else
21+ echo " Creating new PostgreSQL container..."
22+ docker run -d \
23+ --name postgres-demo \
24+ -e POSTGRES_DB=demo \
25+ -e POSTGRES_USER=admin \
26+ -e POSTGRES_PASSWORD=admin \
27+ -p 5439:5432 \
28+ postgres:15
29+ fi
2030
2131# Wait for PostgreSQL to be ready
2232echo " Waiting for PostgreSQL to be ready..."
@@ -33,7 +43,14 @@ export DJANGO_SUPERUSER_USERNAME=admin
33433444export DJANGO_SUPERUSER_PASSWORD=admin
3545
36- uv run ./manage.py createsuperuser --noinput
46+ # Check if admin user already exists
47+ echo " Checking if admin user exists..."
48+ if uv run ./manage.py shell -c " from django.contrib.auth.models import User; exit(0 if User.objects.filter(username='admin').exists() else 1)" ; then
49+ echo " Admin user already exists, skipping creation"
50+ else
51+ echo " Creating admin user..."
52+ uv run ./manage.py createsuperuser --noinput
53+ fi
3754echo " Username: admin"
3855echo " Password: admin"
3956
0 commit comments