Herokuにデプロイできるように、PostgreSQLを使用しようとしています。しかし、なぜ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にいます)
私に何ができる?
私はPG管理ダッシュボードに移動し、そこでdb/userを作成する必要がありました。間違いなく、それはオンラインのチュートリアルが言ったこととは異なるサブディレクトリにありました(おそらく更新されたディレクトリの最終更新)。幸いにも、それを見つけてテーブル/ユーザーを作成し、database.ymlファイルを更新すると、アプリが動作するようになりました。
エラーは「ロール "Myname"は存在しません」、
postgresqlのユーザー「Myname」を作成します
Sudo -u postgres createuser --superuser Myname
この問題を解決します。
私のために働いたのは: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でHomebrewを使用してPostgresqlをインストールする場合、デフォルトのpostgres
ユーザーは存在せず、最初にユーザーを設定しないとpsql
を直接使用することはできません。
username
用にpassword
とPostgresql
を作成する必要があります
psql
にパスワードを持つユーザーを作成してみてください
CREATE USER Myname WITH PASSWORD 'your_password';
そしてそれらをあなたのdatabase.yml
に追加する必要があります
username: Myname
password: your_password
@ 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:pg gemのインストールエラー