J'essaie de copier une table planet_osm_polygon
d'une base de données osm
à une autre test
. JE su postgres
et effectué le pg_dump
.
Problème: Cependant, je reçois l'erreur could not change directory to "/root"
et le Password:
L'invite est apparue deux fois! Existe-t-il un moyen d'effectuer le pg_dump
lorsque vous êtes connecté en tant que root
?
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:
Problème n ° 2: Il semble que la table est copiée dans le schéma public
même si j'ai passé l'indicateur --table="staging.planet_osm_polygon"
. Pourquoi n'est-il pas copié dans le schéma staging
?
Essayez ceci: Re: n'a pas pu changer le répertoire en "/ root" :
Apparemment, vous avez fait "su postgres" à partir du compte root, vous êtes donc toujours dans le répertoire personnel de root. Il serait préférable de faire "su - postgres" pour vous assurer que vous avez acquis tout l'environnement du compte postgres. La lecture de "man su" pourrait vous aider ici.
Pour moi, cela a fait l'affaire, faites attention aux citations (')
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'
Noter la -Hiu
pour Sudo, ou utilisez su - postgres
vous pouvez également mettre cela dans un cronjob pour root avec crontab -e