Simplify the scheduler's database initialization
Use the new "init-admin" command to initialize the database and fallback to the standard postgresql initialization. The database creation is delegated to the postgresql entrypoint, the extensions and the tables are configured respectively by the init-admin and init commands.
Using this, we can execute the "init-admin" command at each start which can be useful when new super-user migrations are added.
Example of a restart:
swh-scheduler_1 | Creating extensions...
swh-scheduler_1 | psql:/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/scheduler/sql/10-superuser-init.sql:1: NOTICE: extension "uuid-ossp" already exists, skipping
swh-scheduler_1 | Initializing the database...
swh-scheduler_1 | DONE database for scheduler exists at version 17
swh-scheduler_1 | Starting the swh-scheduler API server
Related to swh/infra/sysadm-environment#2736 (closed) Depends on swh-core!311 (closed)
Test Plan
with the diff applied on core + the docker-compose.override.yml well configured to use the core module
docker-compose down -v
docker-compose up swh-scheduler-db
docker-compose down
docker-compose up swh-scheduler
Migrated from D4377 (view on Phabricator)