web-dev-qa-db-fra.com

PG :: ConnectionBad FATAL: le rôle "Myname" n'existe pas

J'essaie d'utiliser PostgreSQL pour pouvoir me déployer sur Heroku. Cependant, je ne peux plus exécuter localhost, pourquoi? Je reçois le message suivant:

PG::ConnectionBad
FATAL: role "Myname" does not exist

Voici mon databse.yml

development:
  adapter: postgresql
  database: my_database_development
  pool: 5
  timeout: 5000

test:
  adapter: postgresql
  database: my_database_test
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: my_database_production
  pool: 5
  timeout: 5000 

Voici mon gemfile:

source 'https://rubygems.org'

# Bundle Edge Rails instead: gem 'Rails', github: 'Rails/rails'
gem 'Rails', '4.0.3'

# Use pg as the database for Active Record
gem 'pg'

# Use SCSS for stylesheets
gem 'sass-Rails', '~> 4.0.0'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-Rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :Ruby

# Use jquery as the JavaScript library
gem 'jquery-Rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/Rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/Rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:Rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-Ruby', '~> 3.1.2'

# Use Unicorn as the app server
# gem 'Unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'Rails_12factor', group: :production

Il semble que pg ait besoin de moi pour créer un utilisateur ou une base de données, mais je suis incapable de savoir ou comment. Impossible de trouver des commandes qui ont fonctionné pour moi (je suis sur un windows btw)

Que puis-je faire?

18
user3408293

Je devais aller dans mon tableau de bord d'administrateur PG et créer un db/utilisateur là-bas. Malheureusement, il se trouvait dans un sous-répertoire différent de celui indiqué dans les didacticiels en ligne (la dernière mise à jour de la destination du répertoire a probablement été mise à jour). Heureusement, j'ai pu le trouver et y créer la table/l'utilisateur, mettre à jour mon fichier database.yml, puis mon application a pu fonctionner!

0
user3408293

L'erreur est "Le rôle" Mon nom "n'existe pas",  

créer l'utilisateur "Myname" pour Postgresql 

Sudo -u postgres createuser --superuser Myname

cela résoudra ce problème.

36
errakeshpd

Ce qui a fonctionné pour moi était: createuser -P -d -e Myname.

-P  If given, createuser will issue a Prompt for the password of the new user.
      This is not necessary if you do not plan on using password authentication.
-d  The new user will be allowed to create databases.
-e  Echo the commands that createuser generates and sends to the server.

Si vous installez Postgresql avec homebrew sur OSX, il n'y a pas d'utilisateur postgres par défaut et vous ne pourrez pas utiliser psql directement sans configurer un utilisateur au préalable.

9
Meekohi

Vous devez créer une username et password pour votre Postgresql

Essayez de créer un utilisateur avec un mot de passe dans psql

CREATE USER Myname WITH PASSWORD 'your_password';

Et vous devriez les ajouter à votre database.yml comme

username: Myname
password: your_password
0
Pavan

@ user3408293 

  1. Après l'installation, créez un utilisateur pour postgresql 

    Sudo -u postgres createuser --superuser $ USER 

    Sudo -u postgres createuser pgs_root 

  2. Définir le mot de passe de l'utilisateur postgresql 

    Sudo -u postgres psql postgres 

    (Pour l'invite psql) postgres = #\motdepasse pour ex.- postgres = #\motdepasse pgs_root

N.B Vous devez également ajouter un nom d'utilisateur et un mot de passe à différents environnements dans le fichier database.yml.

Vous pouvez également consulter ce lien: Rails: Erreur lors de l’installation de pg gem

0
Addicted

Sur Windows, je pense que c'est un peu plus facile.

Installez postgresql et PGAdmin pour votre système. Voir this

Créez un utilisateur nommé postgres et donnez-lui un mot de passe. Vous serez bien invité à le faire.

Ensuite, lorsque vous souhaitez créer des bases de données , cliquez avec le bouton droit de la souris sur votre connexion et choisissez Nouvelle base de données. Les noms de ces bases de données doivent correspondre à ce qui est écrit dans votre database.yml

Exécutez rake db:migrate Rails_ENV=development (développement | test | production).

Ces étapes ont fonctionné pour moi.

0
manu29.d