web-dev-qa-db-fra.com

Postgres. le rôle "root" n'existe pas. En essayant de pg: extraire la base de données de Heroku

Je suis nouveau à Postgres et à Heroku. J'essaie d'extraire la base de données de Heroku, mais il me manque quelque chose de simple. J'ai fait:

heroku pg:pull HEROKU_POSTGRESQL_IVORY_URL localdb

Et j'ai eu l'erreur:

createdb: database creation failed: ERROR:  permission denied to create database

Ensuite, j'ai essayé la même chose avec "Sudo". et j'ai eu:

createdb: could not connect to database template1: FATAL:  role "root" does not exist

Donc, il doit être je manque quelques commandes simples que je ne peux pas trouver. Sous Linux, Postgres est installé et fonctionne. 

12

createdb est un wrapper autour de l'instruction SQL CREATE DATABASE et doit donc se connecter à la base de données. 

Par défaut, tous les outils de ligne de commande de Postgres tentent de se connecter à la base de données à l'aide de l'utilisateur actuel du système d'exploitation. Comme le message d'erreur indique qu'il n'y a pas d'utilisateur nommé root dans la base de données. Vous devez donc passer le nom du superutilisateur Postgres pour que createdb puisse se connecter. Cet utilisateur s'appelle généralement postgres

Une autre option consiste à basculer l'utilisateur Linux sur postgres si un tel utilisateur Linux existe. 

Je ne connais pas Heroku et je ne sais pas comment vous avez commencé createdb, mais le paramètre permettant de transmettre un nom d'utilisateur est -U (pour tous les programmes en ligne de commande Postgres). Donc vous auriez besoin

 createdb -U postgres name_of_new_database
22

Essayez d'utiliser:

Sudo su - postgres

Puis crééb en utilisant:

createdb name_of_db;

0
Ezrqn Kemboi