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.
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
Essayez d'utiliser:
Sudo su - postgres
Puis crééb en utilisant:
createdb name_of_db;