pg_cron
chỉ có thể được tải dưới dạng thư viện được chia sẻ. Bạn phải chỉ định nó trong postgres.conf
tập tin. Vì tất cả các tập lệnh trong docker-entrypoint-init.d
được thực thi sau khi máy chủ postgres được khởi động (với pg_ctl start
), tất cả các thay đổi đối với shared_preload_libraries
trong postgres.conf
có thể khả dụng sau khi khởi động lại (với pg_ctl restart
).
Ví dụ trong thế giới thực:
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;
Thông báo :
- thứ tự thực thi tập lệnh quan trọng và được sắp xếp theo tên tệp
-
pg_cron
có sẵn trong db được chỉ định bằngcron.database_name