テーブルplanet_osm_polygon
をあるデータベースosm
から別のデータベースtest
にコピーしようとしています。私はsu postgres
を実行し、pg_dump
を実行しました。
問題:ただし、エラーcould not change directory to "/root"
が発生し、Password:
プロンプトが2回表示されます。 root
としてログインしたときにpg_dump
を実行する方法はありますか?
root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" |
psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:
問題#2:フラグ--table="staging.planet_osm_polygon"
を渡したにもかかわらず、テーブルがpublic
スキーマにコピーされているようです。スキーマstaging
にコピーされないのはなぜですか?
これを試してください: Re:ディレクトリを "/ root"に変更できませんでした :
どうやら、ルートアカウントから「su postgres」を実行したため、まだルートのホームディレクトリにいます。 「su-postgres」を実行して、postgresアカウントの環境をすべて取得したことを確認することをお勧めします。ここで「man su」を読むと役立つかもしれません。
私にとってこれはトリックをしました、引用符( ')に注意してください
Sudo -Hiu postgres 'pg_dump --column-inserts --data-only --table=someTable entities_db > /var/backups/anywhere/$(date +%Y%m%d_%H%M%S)_someTable.sql'
Sudoの-Hiu
に注意するか、su - postgres
を使用してください
crontab -e
を使用して、rootのcronjobに配置することもできます