sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgresql:FATAL:el rol no existe

Me encontré con problemas similares al configurar una nueva aplicación Rails con Postgresql. Recibí los siguientes mensajes de error a continuación

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

Para resolver esto, simplemente siga la solución a continuación

Primero, debemos iniciar sesión en la cuenta de usuario de Postgres a través de la interfaz de línea de comandos;

sudo su - postgres

Luego, conéctese al servidor de la base de datos usando el cliente psql, como el rol de postgres:

psql -U postgres

Bienvenido a psql 10.6, la terminal interactiva de PostgreSQL.

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

postgres=#

A continuación, conectado con el cliente psql, crearemos un rol con nuestro rolename deseado. que tiene el atributo LOGIN y nuestra contraseña deseada , y que puede crear bases de datos y administrar roles (N/B: No escriba este postgres=# , ya que es un marcador de posición):

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

Tenga en cuenta el punto y coma final requerido (; ) al final de la instrucción SQL. Las comillas simples (‘ ‘) no forman parte de la contraseña, pero deben incluirla.

¿Funcionó? Puede verificar usando el comando \du (N/B: No escriba este postgres=# , ya que es un marcador de posición):

postgres=# \du

Ahora puede ejecutar el comando para crear la base de datos para su aplicación Rails;

rails db:create

Y luego también ejecute el comando para migrar la base de datos para su aplicación Rails;

rails db:migrate

Eso es todo.

Espero que esto ayude