2016-02-17 63 views
10

私はPostgreSQLの初心者です。私は正常にデータベースを作成し、スーパーユーザーとして "philipyoung" -y IDを設定し、以下のコマンドを使用して、ローカルデータベースをelephantsqlの新しいサーバーにコピーします。postgresqlデータベースを新しいサーバにコピーできません[認識できないパラメータ "row_security"]

pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname 

、その後、以下のエラーが

SET 
SET 
SET 
SET 
SET 
ERROR: unrecognized configuration parameter "row_security" 
ERROR: permission denied to create database 
ERROR: role "philipyoung" does not exist 
FATAL: no pg_hba.conf entry for host "xxx.xxx.xxx.xx", user "xxxx", database "xxxx", SSL on 

起こるすべてのヘルプは

答えて

7

をいただければ幸いあなたがローカルにより新しいバージョンのPostgreSQLを持っているので、「row_security」エラーは、おそらくですリモートエンド。あなたがその機能を使用していない限り、それは問題ではありません。

「権限が拒否されました」と「ユーザーXが存在しません」というエラーが原因で失敗しています。リモートサーバー上にデータベースを作成する権限を持たないユーザーとしてデータベースを復元しようとしています。次に、関連するユーザーを見つけることができず、次にそのユーザーにリモートアクセスを設定していません。

ユーザーはデータベース間で共有され、コピーされません。だから、

- あなたのような何かをしたい:リモートサーバー上のように「postgresの」に

  1. ログインし、「ユーザXの作成...」
  2. 上のユーザーとして「postgresのを」データベースを復元リモートサーバーとそれはあなたが望むユーザーに所有権を設定できる必要があります。

データベースへのリモートアクセスを許可しない場合は、sshトンネル(インターネット上でたくさんのサンプルを作成する)またはファイルにダンプする(カスタム、圧縮形式)、最初にリモートマシンにダンプをコピーします。

可能であれば、両方のサーバで同じバージョンのPostgreSQLを実行してみてください。コミュニケーションが必要な場合は、作業が簡単になります。

+0

解決に感謝して、リチャード!私のPostgreバージョンをローカルバージョンにダウングレードすると、そのトリックを行います。まったく別の状況で、実際のシナリオでRESTful APIについて学ぶために無料のHerokuサービスを使用しました。私は無料のプランを使用しているので、彼らは私のローカルデータベースを複製する許可を与えませんでした。すべてのテーブルを提供されたデータベースにオンラインでクローンすることは可能ですか?ありがとう! –

+0

私はHerokuのユーザーではないと思います。ドキュメントを読む必要があります。 Herokuエンドに何もインストールできないとすれば、リモートエンドのすべてのデータを削除し、再度アップロードするか、独自の差分生成スクリプトをスクリプト化することになります。 –

関連する問題