PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql :FATAL :le rôle n'existe pas

J'ai rencontré des problèmes similaires lors de la configuration d'une nouvelle application Rails avec Postgresql. J'ai reçu les messages d'erreur suivants ci-dessous

FATAL:  role "promisepreston" does not exist
Couldn't create 'MyBlog_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: FATAL:  role 

Caused by:
PG::ConnectionBad: FATAL:  role "promisepreston" does not exist

Pour résoudre ce problème, suivez simplement la solution ci-dessous

Tout d'abord, nous devons nous connecter au compte utilisateur postgres via l'interface de ligne de commande ;

sudo su - postgres

Ensuite, connectez-vous au serveur de base de données à l'aide du client psql, en tant que rôle postgres :

psql -U postgres

Bienvenue dans psql 10.6, le terminal interactif PostgreSQL.

[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help

postgres=#

Ensuite, connecté avec le client psql, nous allons créer un rôle avec notre nom de rôle souhaité qui a l'attribut LOGIN et notre mot de passe souhaité , et qui peut créer des bases de données et gérer des rôles (N/B : Veuillez ne pas saisir ce postgres=# , puisqu'il s'agit d'un espace réservé) :

postgres=# create role rolename with createdb login password 'password1';

Notez le point-virgule de fin obligatoire (; ) à la fin de l'instruction SQL. Les guillemets simples ( ' ' ) ne font pas partie du mot de passe, mais doivent l'entourer.

Cela a-t-il fonctionné ? Vous pouvez vérifier en utilisant la commande \du (N/B : Veuillez ne pas saisir ce postgres=# , puisqu'il s'agit d'un espace réservé) :

postgres=# \du

Vous pouvez maintenant exécuter la commande pour créer la base de données de votre application Rails ;

rails db:create

Et puis exécutez également la commande pour migrer la base de données de votre application Rails ;

rails db:migrate

C'est tout.

J'espère que cela vous aidera