PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

docker-entrypoint-initdb.d के भीतर pg_cron एक्सटेंशन बनाना विफल रहता है

pg_cron केवल साझा पुस्तकालय के रूप में लोड किया जा सकता है। आपको इसे postgres.conf . में निर्दिष्ट करना होगा फ़ाइल। चूंकि docker-entrypoint-init.d . में सभी स्क्रिप्ट पोस्टग्रेज सर्वर शुरू होने के बाद निष्पादित किया जाता है (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;

सूचना :

  1. स्क्रिप्ट निष्पादन आदेश मायने रखता है और फ़ाइल नामों द्वारा आदेशित किया जाता है
  2. pg_cron db . में उपलब्ध हो जाता है cron.database_name . के साथ निर्दिष्ट


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL विंडोज़ में नाम संसाधित करता है

  2. एसक्यूएल:सबसे ज्ञात मूल्यों के साथ पंक्ति का चयन कैसे करें?

  3. पोस्टग्रेज ट्रिगर और फंक्शन के साथ सहायता की आवश्यकता है

  4. postgresql - तालिका में प्रत्येक कॉलम की गणना (कोई शून्य मान नहीं)

  5. PostgreSQL के साथ HikariCP:setQueryTimeout(int) अभी तक लागू नहीं किया गया है