web-dev-qa-db-fra.com

PostgreSQL: impossible de changer le répertoire en / root

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:

MISE À JOUR

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?

12
Nyxynyx

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.

26
Ela

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 -Hiupour Sudo, ou utilisez su - postgres

vous pouvez également mettre cela dans un cronjob pour root avec crontab -e

1
Philippe Gachoud