Publication Dialog¶
Logical replication は、パブリッシャーノード上の1つ以上の パブリケーション にサブスクライブする1人以上の サブスクライバー で、 publish および subscribe モデルを使用します。
パブリケーション ダイアログを使用して、パブリケーションを作成します。パブリケーションは、テーブルまたはテーブルのグループ、またはスキーマまたはスキーマのグループから生成された変更のセットであり、変更セットまたはレプリケーションセットと説明される場合があります。
パブリケーション ダイアログは、次のダイアログタブを使用してパブリケーションの開発を編成します。 一般 、 テーブル 、および オプション 。 SQL タブには、ダイアログ選択によって生成されたSQLコードが表示されます。
[ 全般 ]タブのフィールドを使用して、パブリケーションを識別します。
Name フィールドを使用して、パブリケーションの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。
所有者 フィールドは、現在接続しているユーザーとしてユーザーの名前を自動的に取得します。所有者は、alterPublicationを使用してパブリケーションを作成した後に変更できます。
[ テーブル ]タブをクリックして続行します。
PostgreSQLバージョン<=14の[テーブル]タブ
PostgreSQLバージョンの[テーブル]タブ>=15
[ テーブル ]タブを使用して、パブリケーションのテーブルプロパティを設定します。
Alltables? の横にあるスイッチを Yes に移動して、将来作成されるテーブルを含むデータベースのすべてのテーブルをレプリケートします。
Onlytable? の横にあるスイッチを Yes に移動して、すべての子孫テーブルを除き、リストされたテーブルのみをレプリケートします。
リストされたすべてのテーブルを複製するには、 Tables フィールドでテーブルまたはテーブルのリストをコンマで区切って指定します。PostgreSQL15以降では、テーブルまたはテーブルのリストを指定して、リストされたすべてのテーブルを特定の列および/またはWHERE句とともに複製します。
PostgreSQL15以降では、 TablesInSchema フィールドにコンマで区切られたスキーマまたはスキーマのリストを指定して、リストされているすべてのスキーマを複製します。テーブルの列が選択されている場合、このフィールドは無効になります。
[ オプション ]タブをクリックして続行します。
[ オプション ]タブを使用して、パブリケーションのオプションプロパティを設定します。
With セクションを使用して、新しいパブリケーションによってサブスクライバーに公開されるDML操作を決定します。これらのDML操作をパブリケーションからサブスクリプションにレプリケートしたくない場合は、 INSERT 、 UPDATE 、 DELETE 、または TRUNCATE の横にあるスイッチを No に移動します。デフォルトでは、すべてのスイッチは Yes に設定され、すべてのDML操作が許可されます。
注釈
UPDATEおよびDELETE操作をレプリケートできるように、パブリッシュされたテーブルには「レプリカID」が構成されている必要があります。ALTERTABLEステートメントで変更できます。レプリカアイデンティティの詳細については、 Logical Replication Publication を参照してください。
SQL タブをクリックして続行します。
Publication ダイアログに入力すると、SQLコマンドが生成されます(以下の例を参照)。レビューには SQL タブを使用します。再アクセスするかタブを切り替えて、SQLコマンドを変更します。
Example
以下は、 パブリケーション ダイアログでのユーザー選択によって生成されたsqlコマンドの例です。
この例では、 postgres が所有する pub1 という名前のパブリケーションを作成します。すべてのDML操作のレプリケーションを許可します。
Info ボタン(i)をクリックして、オンラインヘルプにアクセスします。
Save ボタンをクリックして作業を保存します。
Close ボタンをクリックして、作業を保存せずに終了します。
リセット ボタンをクリックして、すべてのデフォルト設定を復元します。