diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -94,12 +94,6 @@
     env_file:
       - ./env/common_python.env
       - ./env/scheduler-db.env
-    environment:
-      # unset PGHOST as db service crashes otherwise
-      PGHOST:
-      # unset POSTGRES_DB: we're handling db creation ourselves in the backend
-      # service entrypoint
-      POSTGRES_DB:
 
   swh-scheduler:
     image: swh/stack
diff --git a/docker/env/scheduler-db.env b/docker/env/scheduler-db.env
--- a/docker/env/scheduler-db.env
+++ b/docker/env/scheduler-db.env
@@ -1,4 +1,3 @@
-PGHOST=swh-scheduler-db
 PGUSER=postgres
 POSTGRES_PASSWORD=testpassword
 POSTGRES_DB=swh-scheduler
diff --git a/docker/env/scheduler.env b/docker/env/scheduler.env
--- a/docker/env/scheduler.env
+++ b/docker/env/scheduler.env
@@ -1,3 +1,4 @@
+PGHOST=swh-scheduler-db
 SWH_WORKER_INSTANCE=scheduler
 LOGLEVEL=INFO
 CELERY_BROKER_URL=amqp://amqp//
diff --git a/docker/services/swh-scheduler/entrypoint.sh b/docker/services/swh-scheduler/entrypoint.sh
--- a/docker/services/swh-scheduler/entrypoint.sh
+++ b/docker/services/swh-scheduler/entrypoint.sh
@@ -17,13 +17,13 @@
 		"$@"
 	fi
 else
-    wait_pgsql template1
+    wait_pgsql ${POSTGRES_DB}
 
     echo swh-scheduler database setup
-    if ! check_pgsql_db_created; then
-        echo Creating database and extensions...
-        swh db create --db-name ${POSTGRES_DB} scheduler
-    fi
+
+    echo Creating extensions...
+    swh db init-admin --db-name ${POSTGRES_DB} scheduler
+
     echo Initializing the database...
     swh db init --db-name ${POSTGRES_DB} scheduler