sql >> データベース >  >> RDS >> PostgreSQL

docker-entrypoint-initdb.d内にpg_cron拡張機能を作成すると失敗します

    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;
    

    通知

    1. スクリプトの実行順序は重要であり、ファイル名順に並べられています
    2. pg_cron dbで利用可能になります cron.database_nameで指定


    1. サブクエリから複数の値を取得することは可能ですか?

    2. リレーショナルと非リレーショナルデータベース - パート1

    3. データベース設計:EAVにするか、EAVしないか?

    4. 一度に1行をコピーせずにMYSQLでテーブルを複製する