我正在尝试使用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上)
我该怎么办?
答案 0 :(得分:37)
错误是“角色”Myname“不存在”,
为Postgresql创建用户“Myname”
sudo -u postgres createuser --superuser Myname
它将解决此问题。
答案 1 :(得分:9)
对我有用的是:protected void btn_Submit_Click1(object sender, EventArgs e)
{
var Basket = (List<string>)Session["cart"]; // ADD THIS LINE
foreach (GridViewRow row in Basket.Rows)
{
。
createuser -P -d -e Myname
如果在OSX上安装带有自制程序的Postgresql,则没有默认的-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.
用户,如果没有先设置用户,您将无法直接使用postgres
。
答案 2 :(得分:0)
您应为username
password
和Postgresql
尝试使用psql
CREATE USER Myname WITH PASSWORD 'your_password';
您应该将这些内容添加到database.yml
作为
username: Myname
password: your_password
答案 3 :(得分:0)
@ user3408293
安装后为postgresql创建用户
sudo -u postgres createuser --superuser $ USER
sudo -u postgres createuser pgs_root
设置postgresql用户的用户密码
sudo -u postgres psql postgres
(对于psql提示)postgres =#\ passsword for ex.- postgres =#\ passsword pgs_root
N.B您还应该在database.yml文件中的不同环境中添加用户名和密码。
您也可以参考以下链接:Rails: Error installing pg gem
答案 4 :(得分:0)
在Windows上,我相信它更容易一些。
为您的系统安装postgresql和PGAdmin。见this
创建名为postgres的用户并为其提供密码。你会得到很好的提示。
然后,当您想要create databases时,只需右键单击您的连接并选择“新建数据库”。这些数据库的名称应与database.yml
运行rake db:migrate RAILS_ENV=development
(开发|测试|生产)。
这些步骤对我有用。
答案 5 :(得分:0)
我必须进入我的PG管理仪表板并在那里创建一个db / user。不幸的是,它位于与在线教程不同的子目录中(可能更新了目录目标上次更新)。幸运的是,我能够找到它并在那里创建表/用户,更新我的database.yml文件然后我的应用程序能够工作!
答案 6 :(得分:0)
使用此命令来使用您的Postgres用户:
sudo su-postgres
现在使用此命令创建用户:
createuser -s -r'用户名'
现在退出。
错误已解决。