pg_cron
peut être chargé uniquement en tant que bibliothèque partagée. Vous devez le spécifier dans postgres.conf
dossier. Depuis tous les scripts dans docker-entrypoint-init.d
sont exécutés après le démarrage du serveur postgres (avec pg_ctl start
), toutes les modifications apportées à shared_preload_libraries
dans postgres.conf
peut devenir disponible après redémarrage (avec pg_ctl restart
).
Exemple concret :
002-setup.sh :
#!/bin/sh
# Remove last line "shared_preload_libraries='citus'"
sed -i '$ d' ${PGDATA}/postgresql.conf
cat <<EOT >> ${PGDATA}/postgresql.conf
shared_preload_libraries='pg_cron,citus'
cron.database_name='${POSTGRES_DB:-postgres}'
EOT
# Required to load pg_cron
pg_ctl restart
003-main.sql :
CREATE EXTENSION pg_cron;
Avis :
- l'ordre d'exécution des scripts est important et est trié par noms de fichiers
pg_cron
devient disponible dans db spécifié aveccron.database_name