pg_dump
からバイナリダンプではなくSQLダンプを取得しているようです 。これにより、スキーマ(FKを含む)が上部にあり、その後にデータを再ロードするための一連のINSERTが続くSQLの山ができます。 <からのバイナリダンプcode> pg_dump
pg_dump
の場所をPhpPgAdminに伝えるには、少し追加の構成が必要なようです。 は。次に、そのバイナリダンプを pg_restore
にフィードします およびpg_restore
参照整合性の問題(より正確には、 pg_restore
)を回避するために、すべてを適切な順序で再構築します。 すべてのデータを復元してから、制約を追加します。
PhpPgAdminは、プレーンSQLダンプを操作する
pg_restore
ではなく 。これは信じがたいことですが、 pg_restore
の呼び出しに関するドキュメントには何も見つかりません。 。これが当てはまる場合は、SQLダンプを手動で編集し、すべてのFKを最後に移動する必要があります。
SET CONSTRAINTSALLDEFERREDを追加してみることもできます。
SQLダンプの先頭で、トランザクションが終了するまで制約チェックを遅らせる必要があります。また、INSERTのブロック全体がトランザクション内に含まれていることを確認する必要があります。
PhpPgAdminが実際にpg_restore
を呼び出せない場合 次に、 pg_dump
を使用することをお勧めします およびpg_restore
バックアップ手順を必要に応じて制御できるように、手動で。申し訳ありませんが、FKを使用したデータベースのバックアップを処理できないデータベース管理ツールは、役に立たないよりも悪いです。うまくいけば、PhpPgAdminの使い方を知っている誰かが現れ、 pg_restore
の使い方を教えてくれます。 PhpPgAdminを使用します。