エクスポート
<オール>インポート
<オール>パーミッションに関しては、データベース ダンプ (プレーン テキスト) を開いて、現在のユーザーを変更しようとしている行、またはテーブルの所有者を設定しようとしている行を探してください。次に、検索/置換を実行して、元の所有者を新しいユーザー名に置き換えます。権限の付与/変更について心配する必要はまったくありません:D
以前は、開発から本番に移行するときに常にこれを行う必要がありました。元のデータベース/テーブルの所有者は開発者であり、立ち上げの準備が整ったら、それを顧客アカウントに変更する必要がありました.
pg_dump
を使用して常にコンソールから作業しました およびその他の関連するコマンド ライン ツールがありますが、これらは Web インターフェースにあるオプションに対応していると思います。
phpPgAdmin エクスポートは pg_dump を使用します。それが何をしているのか知りたい場合は、それについて読むことができます.
COPY ではなく SQL としてエクスポートすることもできます。 COPY は Postgres 用であり、別のデータベースを使用したい場合は SQL が必要です。また、別のデータベースに慣れていると理解しやすくなります。
'Structure and Data' で得られるのは、データベース テーブル構造、すべてのデータ、制約とキーで始まる SQL ファイルです。
sascha が指摘したように、権限に問題がある可能性があります。これは開発データベース専用であるため、許可行を削除するかコメントアウトする方が簡単だといつも思っていました。 「OWNER」が含まれる行を削除/コメント/変更します。いいね
ALTER TABLE schema.table OWNER TO pguser;
各 CREATE TABLE ステートメントの後に、テーブル所有者を設定するためにこれらのいずれかが含まれます。
インポート
SQL エラーがある場合 (データによってはよく見られます。奇数文字の文字列は面倒な場合があります)、ファイルを分割し、最初に構造をコピーして、それを標準として実行する方が簡単かもしれません。 SQL クエリ。次に、データから始めて、一度に 1 つのテーブルをインポートします。パーツにカットすると、エラーを見つけやすくなります。特に、非常に役に立たないエラー メッセージに対処する場合。
はい、これは多くのコピー アンド ペースト作業ですが、作業は完了します。おそらく、それを MySQL に移植し、PHP を変更して Postgres の代わりに MySQL に接続してデータを取得するよりも時間がかかりません。
PhpPgAdmin と pgadminIII の両方に、SQL ステートメントを実行する機能があります。
pgAdminIII -> データベースを選択 -> [任意の SQL クエリを実行] ボタンを選択します。PhpPgAdmin -> データベースを選択 -> [SQL] リンクを選択します。
正直なところ、これは私が見つけたデータベースを移動する最も刺激の少ない方法です。時間がかかりますが、エラーが発生しない場合に限られます。