1

私は700以上のテーブルと約のサイズの大規模なデータベースを持っています。23GBで、このデータベースをテスト環境にエクスポートしようとしています。復元を実行すると、外部キー制約がまったく含まれていません。現時点では、理由を正確に理解することはできませんが、データ自体が正しく、すべてのテーブル、PK、関数、およびビューも復元されるため、残っているのは外部キーだけであり、postgresログにはエラーは表示されません。

私はこれについて数日間グーグルしてきましたが、運がありません。そして、これは正しいアプローチではないと確信していますが、私が今持っているのはそれだけなので、テスト目的のためだけに試してみます。

とてもわかりやすくシンプルですが、外部キーのみをスクリプトにエクスポートして、このスクリプトから復元する方法はありますか?

前もって感謝します。

@Craig:確かにCraigはここに詳細があります:

  • 復元したいマシン:x86_64上のPostgreSQL 8.4.8-redhat-linux-gnu、GCC gcc(GCC)4.1.2 20080704(Red Hat 4.1.2-48)、64ビットでコンパイル
  • 元のバックアップを作成したマシン:x86_64-redhat-linux-gnu上のPostgreSQL 8.4.13、GCC gcc(GCC)4.4.6 2 0120305(Red Hat 4.4.6-4)、64ビットでコンパイル

エクスポートコマンド:独自のDBExportおよびDBRestoreスクリプトを含むAdepmpiereAdempiereWikiを使用しています。
DBExportスクリプトには次のコマンドがあります。

pg_dump -h 127.0.0.1 -p 5432 --no-owner -U adempiere adempiere> /home/adempiere/adempiere.sql

DBRestoreには次の行があります。

psql -h 127.0.0.1 -p 5432 -d adempiere -U adempiere -f /home/adempiere/adempiere.sql

このスクリプトは、ラップトップにある仮想マシンで復元でき、FKに含まれるすべてのものが復元されましたが、テストマシンではうまくいきませんでした。

4

1 に答える 1

3

さて、これが私が思いついた解決策です

次のコマンド pg_dump -h 127.0.0.1 -p 5432 --no-owner -U -s adempiere adempiere > /home/adempiere/adempiere_bkp.sqlで構造のみのバックアップを作成しました。

パラメータ -s がここでの鍵です

復元するには、テスト マシンで次のコマンドを実行するだけです

psql -h 127.0.0.1 -p -d adempiere -U adempiere -f /{ ファイルへのパス adempiere_bkp.sql }

そしてほら、すべてが再び完成しました!.

それが他の誰かに役立つことを願っています。助けてくれてありがとう。

于 2013-03-05T22:13:20.300 に答える