2014-04-28 30 views
11

Sto cercando di utilizzare PostgreSQL in modo che possa essere distribuito su Heroku. Tuttavia, non posso più eseguire localhost perché? Ottengo il seguente messaggio:PG :: ConnectionBad FATAL: il ruolo "Myname" non esiste

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

Ecco il mio 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 

Ecco la mia 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 

Sembra che pg ha bisogno di me per creare un utente o un databse tuttavia non sono in grado o non so come. Impossibile trovare i comandi che hanno funzionato per me (sono su un windows btw)

Cosa posso fare?

+0

Si dovrebbe dare 'username' e' password' al proprio file 'database.yml' – Pavan

+0

come faccio a sapere qual è la mia password? – user3408293

risposta

0

Ho dovuto andare nella mia dashboard di amministrazione PG e creare un utente/db lì. Unfrotunately era in una sottodirectory diversa da quella che i tutorial online dicevano (probabilmente l'ultimo aggiornamento della directory di destinazione). Fortunatamente sono riuscito a trovarlo e creare lì il tavolo/utente, aggiornare il mio file database.yml e poi la mia app è stata in grado di funzionare!

0

È necessario creare un username e password per il vostro Postgresql

Prova a creare un utente con password nel psql

CREATE USER Myname WITH PASSWORD 'your_password'; 

E il tuo dovrebbe aggiungere quelli al vostro database.yml come

username: Myname 
password: your_password 
+0

questo non funziona. Crea comando non trovato – user3408293

+0

@ user3408293 Dove si esegue il comando? Provare a eseguire 'psql'. – Pavan

+0

La mia riga di comando nella mia directory app – user3408293

0

@ user3408293

  1. Dopo l'installazione creare un utente per PostgreSQL

    sudo -u postgres createuser --superuser $ USER

    sudo -u postgres createuser pgs_root

  2. Imposta password utente per l'utente PostgreSQL

    sudo -u postgres psql postgres

    (per prompt psql) postgres = # \ passsword per Postgres ex.- = # \ passsword pgs_root

NB Si dovrebbe anche aggiungere il nome utente e la password per diversi ambienti in database.yml file.

È inoltre possibile consultare questo link: Rails: Error installing pg gem

+0

il comando sudo non funziona sul mio computer. Credo che non funzioni su Windows – user3408293

+0

Questo potrebbe aiutarti. http://superuser.com/questions/42537/is-there-any-sudo-command-for-windows – Addicted

+0

in realtà io uso gitbash su una macchina Windows, non la riga di comando di Windows mi dispiace dovrebbe aver specificato. Questo fa schifo praticamente non posso fare nulla .. – user3408293

0

Su Windows, credo che sia un po 'più facile.

Installare postgresql e PGAdmin per il sistema. Vedi this

Creare un utente denominato postgres e assegnargli una password. Sarai gentilmente invitato a farlo.

Quindi, quando si desidera create databases, fare clic destro sulla connessione e scegliere Nuovo database. I nomi di questi database devono corrispondere a quanto scritto nel tuo database.yml

Eseguire rake db:migrate RAILS_ENV=development (sviluppo | prova | produzione).

Questi passaggi hanno funzionato per me.

18

L'errore è "ruolo "Myname" non esiste",

creare l'utente "Myname" per Postgresql

sudo -u postgres createuser --superuser Myname

risolverà questo problema.

4

Ciò che ha funzionato per me era: 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. 

Se si installa Postgresql con homebrew su OSX, non v'è alcun valore predefinito postgres utente, e non sarà in grado di utilizzare psql direttamente, senza la creazione di un utente prima.

+0

L'ho già fatto prima, non so perché è stato necessario farlo di nuovo ... – rld

Problemi correlati