前提・実現したいこと
Railsのアプリケーションをローカルへ作成するときに以下のようにデーターベース(PostgreSQL)を指定して作成しております。
cmd
1rails new SampleApp -d postgresql
DBの管理を外部ソフトのA5:SQL Mk2を使用して、開発環境・テスト環境・本番環境をそれぞれ登録し、管理しようと考えています。
現状、database.ymlに載っている情報を基に、開発環境・テスト環境の登録はできております。
yml
1# 省略 2 3default: &default 4 adapter: postgresql 5 encoding: unicode 6 username: postgres 7 password: (パスワード) 8 # For details on connection pooling, see Rails configuration guide 9 # https://guides.rubyonrails.org/configuring.html#database-pooling 10 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 11 12development: 13 <<: *default 14 database: SampleApp_development 15 16# 省略 17 18test: 19 <<: *default 20 database: SampleApp_test 21 22# 省略
発生している問題・エラーメッセージ
上記の情報と下記の情報を基に本番環境も登録を試みたのですが、エラーにより、登録ができません。
yml
1# 省略 2 3production: 4 <<: *default 5 database: SampleApp_production 6 username: SampleApp 7 password: <%= ENV['SAMPLEAPP_DATABASE_PASSWORD'] %> 8 9# 省略
試したこと
調べると、productionはインストール後設定を変えない限り、パスワードが無い状態(nil)と出てきたので
以下のコードで、パスワードを変更しました。
cmd
1set SAMPLEAPP_DATABASE_PASSWORD=(任意のパスワード)
その後、以下のコードでDBの情報を確認したところパスワードの設定はできていました。
cmd
1irb(main):001:0> ActiveRecord::Base.connection_config
#実行結果 =>{:adapter=>"postgresql", :encoding=>"unicode", :username=>"SampleApp", :password=>"(設定されたパスワード)", :pool=>5, :database=>"SampleApp_production"}
しかし、再度登録を試してみても同じエラーで止まってしまい、登録ができません。
また、PCを再起動かけると、productionのパスワードが再度nilとなってしまい、再度の設定が必要となってしまいます。
どのように設定したら、外部ソフトへの登録が可能になるのでしょうか?
###追記
2021/03/23時点
database.ymlに記載の内容を基に、設定を試みてます。(以下)
➂のパスワードは前述である通り、コマンドで設定したパスワードを入力致しました。
yml
1 2default: &default 3 adapter: postgresql 4 encoding: unicode 5 username: postgres 6 password: (任意のパスワード) 7 # For details on connection pooling, see Rails configuration guide 8 # https://guides.rubyonrails.org/configuring.html#database-pooling 9 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 10 11development: 12 <<: *default 13 database: SampleApp_development 14 15test: 16 <<: *default 17 database: SampleApp_test 18 19production: 20 <<: *default 21 database: SampleApp_production(➀) 22 username: SampleApp(➁) 23 password: <%= ENV['SAMPLEAPP_DATABASE_PASSWORD'] %>(➂)
サーバーは、newコマンドでアプリ作成後、設定を弄っていない為、未記入です。
(テスト環境・開発環境では未記入で設定が通りました。)
補足情報(FW/ツールのバージョンなど)
OS:Windows10 Pro
IDE:Visual Studio Code var1.54.3
Ruby:2.7.2p137
Rails:6.1.3
PostgreSQL:13.0
A5:SQL Mk-2:Version 2.15.4(x64 Edition)
回答2件
あなたの回答
tips
プレビュー