2014-04-28 66 views
11

我想使用PostgreSQL,以便我可以部署到Heroku。但是我不能再運行localhost爲什麼?我得到以下信息:PG :: ConnectionBad致命錯誤:角色「我的名字」不存在

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 

看來,皮克需要我創建一個用戶或DATABSE但是我無法或不知道如何。找不到任何適用於我的命令(我在Windows btw上)

我該怎麼辦?

+0

你應該給''database.yml'文件輸入'username'和'password' – Pavan

+0

我怎麼知道我的密碼是什麼? – user3408293

回答

0

我不得不進入我的PG管理儀表板和建立DB /用戶那裏。不幸的是,它位於與在線教程不同的子目錄中(可能更新了目錄目的地的最新更新)。幸運的是,我能夠找到它並在那裏創建表/用戶,更新我的database.yml文件,然後我的應用程序就能夠工作了!

0

您應該創建一個usernamepasswordPostgresql

嘗試在psql

CREATE USER Myname WITH PASSWORD 'your_password'; 

創建帶有密碼的用戶而你應該添加那些你database.yml作爲

username: Myname 
password: your_password 
+0

這不起作用。創建命令未找到 – user3408293

+0

@ user3408293運行命令的位置?嘗試運行'psql'。 – Pavan

+0

我的應用程序目錄中的命令行 – user3408293

0

@ user3408293

  1. 安裝後創建PostgreSQL的用戶

    須藤Postgres的-u CREATEUSER --superuser $ USER

    須藤Postgres的-u CREATEUSER pgs_root

  2. 設置用戶密碼爲PostgreSQL用戶

    sudo -u postgres psql postgres

    (對於psql提示符)的Postgres =#\密碼時應爲ex.-的Postgres =#\密碼時應pgs_root

N.B你也應該不同環境中的database.yml文件中添加用戶名和密碼。

您也可以參考以下鏈接:Rails: Error installing pg gem

+0

sudo命令在我的電腦上不起作用。相信它不適用於Windows – user3408293

+0

這可能會幫助你。 http://superuser.com/questions/42537/is-there-any-sudo-command-for-windows – Addicted

+0

實際上,我在Windows機器上使用gitbash而不是Windows命令行抱歉應該指定。太差勁了幾乎我不能做任何事情.. – user3408293

0

在Windows上,我相信這是一個更容易一些。

爲您的系統安裝postgresql和PGAdmin。請參閱this

創建一個名爲postgres的用戶併爲其提供密碼。你會很好地提示做到這一點。

然後,當您想要create databases時,只需右鍵單擊您的連接並選擇新建數據庫。這些數據庫的名稱應與您所寫的內容相對應database.yml

運行rake db:migrate RAILS_ENV=development(開發測試)。

這些步驟爲我工作。

18

的錯誤是 「角色 」的Myname「 不存在」,

創建用戶 「的Myname」 對PostgreSQL

須藤Postgres的-u CREATEUSER --superuser的Myname

它會解決這個問題。

4

對我而言有效的是: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. 

如果您對OSX自制安裝PostgreSQL,沒有默認postgres用戶,你將不能夠直接使用psql沒有首先建立一個用戶。

+0

我已經做到這一點之前,我不知道爲什麼需要再次做到這一點... – rld

相關問題