HackerNews

PostgreSQLインスタンス間でのテーブル移動

Moving tables across PostgreSQL instances

https://ananthakumaran.in/2025/11/02/moving-tables-across-postgres-instances.html


この技術記事では、PostgreSQLインスタンス間で特定のテーブルを移動する方法について解説しています。Googleのデータベース移行サービス(DMS)が利用できない場合、ネイティブの論理レプリケーションが選ばれます。この方法は、全データベースではなく特定のテーブルだけを柔軟に移動できる利点があります。まず、移行元と移行先のインスタンスでユーザーアカウントにレプリケーションアクセスを付与する必要があります。その後、pg_dumpを使用してテーブルスキーマをコピーし、初期ダンプと継続的変更の適用を行います。初期ダンプでは、制約が強制されないため、最初に制約なしでテーブルを作成し、初期ダンプ後に制約を再構築する必要があります。また、PostgreSQLの関数や列挙型も手動で対応する必要があります。最後に、移行元インスタンスで発行を作成し、移行先インスタンスで購読を設定します。