PG:: ConnectionBad FATAL: роль "Myname" не существует

Я пытаюсь использовать PostgreSQL, чтобы я мог развертываться в Heroku. Однако я больше не могу запускать localhost? Я получаю следующее сообщение:

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

Вот мой 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 

Вот мой 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

Кажется, что pg мне нужно создать пользователя или базу данных, но я не могу или не знаю, как это сделать. Не удалось найти какие-либо команды, которые сработали для меня (я нахожусь в windows btw)

Что я могу сделать?

Ответ 1

Мне нужно было войти в панель управления администратора PG и создать там db/user. К счастью, это было в подкаталоге, отличном от того, что говорили в онлайн-учебниках (возможно, обновленное последнее место в каталоге). К счастью, я смог найти его и создать там таблицу/пользователя, обновить файл database.yml, а затем мое приложение смогло работать!

Ответ 2

Ошибка: "роль" Myname "не существует",

создать пользователя "Myname" для Postgresql

sudo -u postgres createuser --superuser Myname

он решит эту проблему.

Ответ 3

Что для меня работало: 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.

Если вы устанавливаете Postgresql с homebrew в OSX, пользователь по умолчанию postgres не будет использоваться, и вы не сможете использовать psql напрямую, не настраивая пользователя в первую очередь.

Ответ 4

Вам следует создать username и password для Postgresql

Попробуйте создать пользователя с паролем в psql

CREATE USER Myname WITH PASSWORD 'your_password';

И вы должны добавить их в свой database.yml как

username: Myname
password: your_password

Ответ 5

@user3408293

  • После установки создайте пользователя для postgresql

    sudo -u postgres createuser --superuser $USER

    sudo -u postgres createuser pgs_root

  • Установить пароль пользователя для пользователя postgresql

    sudo -u postgres psql postgres

    (для подсказки psql) postgres = #\passsword для ex.- postgres = #\passsword pgs_root

N.B Вы также должны добавить имя пользователя и пароль в разные среды в файле database.yml.

Вы также можете сослаться на эту ссылку: Rails: ошибка установки pg gem

Ответ 6

В Windows я считаю, что это немного легче.

Установите postgresql и PGAdmin для вашей системы. См. this

Создайте пользователя с именем postgres и дайте ему пароль. Вам будет предложено сделать это.

Затем, когда вы хотите создавать базы данных, просто щелкните правой кнопкой мыши на своем соединении и выберите "Новая база данных". Имена этих баз данных должны соответствовать тому, что написано в вашем database.yml

Запустите rake db:migrate RAILS_ENV=development (development | test | production).

Эти шаги работали для меня.