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).
Эти шаги работали для меня.