Skip to main content
TOAST カラム、replication slots、publications、スキーマ変更、型マッピングなど、Postgres のレプリケーションの仕組みに関する多くの疑問は、ClickPipes for Postgres よくある質問で扱っています。そこに記載されている情報は、ClickHouse Managed Postgres の移行にも当てはまります。

レプリケーション中に「enum に対する無効な入力値」エラーが表示される

このエラーは、ソース側の Postgres に存在する enum 値が、ターゲットの ClickHouse Managed Postgres には存在しない場合に発生します。logical replication では ALTER TYPE ... ADD VALUE コマンドは自動的に伝播されないため、初回のスキーマ設定後にソース側で追加された新しい enum 値があると、ターゲット側で insert が失敗します。 これを修正するには、ターゲットの Postgres で enum 型に不足している値を追加します。
your_enum_type はご使用の enum 型名に、'new_value' はエラーメッセージに表示されている不足値に置き換えてください。

レプリケーション中に一意制約またはチェック制約違反エラーが発生する

logical replicationでは、レプリケーションの順序がターゲットに既存の制約と競合すると、制約違反が発生することがあります。
  • 一意制約: 変更は、主キーごとの最新の値を書き込むバッチ MERGE/UPSERT 操作として適用されるため、特定のキーに対する操作順序が一意索引で想定される順序と一致しない場合があります。そのため、MERGE の完了後には制約が満たされていても、トランザクション内で一時的に UNIQUE 制約に違反することがあります。Postgres では外部キーの場合とは異なり、一意索引のチェックを遅延できないため、チェックをトランザクションの終了時まで延期することはできません。これはデータ整合性には影響しません。行の識別は主キーによって定義され、MERGE ロジックも同じ主キーに基づいているためです。
  • チェック制約: ターゲットのチェック制約がソースより厳しい場合や、バッチ MERGE 中の中間状態が、最終状態では制約を満たすにもかかわらず、一時的に制約を満たさない場合があります。一意制約と同様に、MERGE は行の識別を定義する主キーに基づいているため、これはデータ整合性には影響しません。
レプリケーションを再開するには、ターゲットの Postgres で問題の制約を削除します。
エラーメッセージ内の名前から制約の詳細を確認できます。
レプリケーションが完了し、ログソースがアクティブでなくなったら、カットオーバー時に制約を再度追加します。

レプリケーション中に “cannot insert a non-DEFAULT value into column” エラーが発生する

このエラーは、ターゲット側のカラム (通常は主キー) が GENERATED ALWAYS AS IDENTITY として定義されている場合に発生します。logical replicationではソースから明示的な値が渡されますが、GENERATED ALWAYS カラムは DEFAULT 以外の値を受け付けないため、insertは次のエラーで失敗します。
この問題を解決するには、ターゲットの Postgres で、ユーザー指定の値を受け入れるようにカラムを変更します。identity カラムは GENERATED BY DEFAULT AS IDENTITY に変更できます。
GENERATED BY DEFAULT AS IDENTITY (または serial/bigserial カラム) は、値が指定されていない場合は自動的に値を生成しますが、GENERATED ALWAYS とは異なり、複製元から明示的に複製された値も受け入れます。

移行中に「extension is not available」エラーが発生する

このエラーは、自動スキーマ移行 (pg_dump) 中に、ソーススキーマがターゲットの Managed Postgres にインストールされていない、または利用できない Postgres 拡張機能に依存している場合に発生します。次のいずれかの形で表示されます。
your_extension を、エラーメッセージに記載されている拡張機能名に置き換えます。 この問題を解決するには、次のいずれかを実行します。
  • 手動スキーマダンプモードでパイプを再作成し、スキーマを調整してサポートされていない拡張機能への依存関係を削除または置換します。
  • ターゲットの Managed Postgres で拡張機能を有効にするため、サポートチケットを起票します。
最終更新日 2026年8月26日