pg_cron 共有ライブラリとしてのみロードできます。 postgres.confで指定する必要があります ファイル。 docker-entrypoint-init.dのすべてのスクリプト以降 postgresサーバーの起動後に実行されます(pg_ctl startを使用) )、shared_preload_librariesへのすべての変更 postgres.conf内 再起動後に利用可能になる可能性があります(pg_ctl restartを使用) )。
実例:
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;
通知 :
- スクリプトの実行順序は重要であり、ファイル名順に並べられています
-
pg_crondbで利用可能になりますcron.database_nameで指定