0

あるサーバーからデータベースをエクスポートし、phpPgAdmin を使用して別のサーバーに配置しようとしています。私のプロセスは次のようなものです:

  1. サーバー1のデータベースを選択し、エクスポートボタンを押します
  2. 「データと構造」を選択し、ドロップダウンの「コピー」オプションを選択します
  3. ダウンロード
  4. サーバー1のデータベースと同じ名前で、サーバー2に同じ名前のデータベースを作成します
  5. そのデータベースを選択し、SQL ペインを開き、サーバー 1 からダウンロードした SQL コードを貼り付けます
  6. 実行する

その時、エラーが発生します:

ERROR:  syntax error at or near "OWNED"
LINE 73: ALTER SEQUENCE address_customer_id_seq OWNED BY address.cust...

73行目全体は次のとおりです。

 ALTER SEQUENCE address_customer_id_seq OWNED BY address.customer_id;

ここで、2つのサーバーでpostgreのバージョンがわずかに異なるためである可能性があることを読みました。そこで、サーバー技術者に確認したところ、はい、その問題があるとのことでした。そこで彼はサーバー 2 をアップグレードしました。ただし、同じエラーが発生します。

何が起こっているのでしょうか?

どうもありがとう。

4

1 に答える 1

3

PostgreSQL 8.4 は、8.1 には存在しない機能と構文を使用するため、8.1 に復元するダンプを生成しません。

8.4 データベースに対して8.1 を実行することでダウングレードできる可能性がありますが、ダンプが単に失敗する可能性が最も高くなります。pg_dump

そこまでのダウングレードは困難であり、8.4 で生成されたダンプを手動で編集しpg_dumpて 8.1 互換にする必要があるかもしれません。

8.1 は古く、サポートされていません。最終的なサポート終了のリリースは 2010 年 11 月でした。新しいプロジェクトやツールに使用することさえ考えるべきではなく、実際にアップグレードを計画する必要があります。

これらのバージョンの違いについては、PostgreSQL バージョン ポリシーを参照してください。詳細については、バージョン 8.2.0、8.3.0、および 8.4.0のリリース ノートを参照してください。アプリケーションに表示される動作の変更がリリースごとに存在することを理解することが重要です。アプリケーションをテストする必要があり、いくつかの下位互換性設定を有効にする必要がある場合があります。

PostgreSQL クラスターのアップグレードに関するドキュメントも読む必要がありますが、8.4 より古いバージョンのアップグレードにはpg_upgrade 使用できないことに注意してください。

インストールが 7 年も前のものでなければ、これはそれほど苦痛ではありません。

于 2013-05-10T01:31:49.453 に答える