🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

1144閲覧

【Ruby on Rails】外部ソフトにPostgreSQLのproduction環境が追加できない。

Mr.sijimi

総合スコア21

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/03/23 01:20

編集2021/03/29 23:56

前提・実現したいこと

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/03/23 05:52

A5:SQL mk-II上でどう設定しようとしているか、スクショなどで説明できますか?
Mr.sijimi

2021/03/23 06:17

追記にて、記載いたします。
shinoharat

2021/03/24 03:56

開発環境・テスト環境はローカルに構築していると思うのですが、本番環境はどこに構築しているのでしょうか? 「本番」というからには、ローカルではなくどこかのサーバ上にある気がするのですが・・・
Mr.sijimi

2021/03/24 05:06

rails newコマンドで-dオプションを付けて作成しただけなので、サーバーにUpする動作はしていないです。作成した段階で、どこかのサーバーに領域が自動生成されるということでしょうか?
shinoharat

2021/03/24 08:15

> 作成した段階で、どこかのサーバーに領域が自動生成されるということでしょうか? いえ、そうではないです。 > rails newコマンドで-dオプションを付けて作成しただけなので、サーバーにUpする動作はしていないです。 ということは、本番環境もローカルに構築されているんですね。
shinoharat

2021/03/24 08:22

以下のコマンドでDBコマンドラインツールを起動できますか? RAILS_ENV=production bundle exec rails dbconsole
Mr.sijimi

2021/03/24 08:32

以下のメッセージが表示されてしまいます。 'RAILS_ENV' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
shinoharat

2021/03/25 02:00

失礼しました。環境がwindowsなのを失念していました。 bundle exec rails dbconsole RAILS_ENV=production または bundle exec rails dbconsole -e production だとどうなりますか?
Mr.sijimi

2021/03/25 04:15 編集

以下の結果となりました。 ①bundle exec rails dbconsole RAILS_ENV=production 結果: `handle_argument_error': ERROR: "rails dbconsole" was called with arguments ["RAILS_ENV=production"] ②bundle exec rails dbconsole -e production 結果:SQLite version 3.34.1 2021-01-20 14:10:07    Enter ".help" for usage hints. ②ではログインはできているようですが、PostgreSQLではなく、SQLiteとなっておりました。
guest

回答2

0

自己解決

解決しないのでこちらの質問は閉じます。
ご回答いただいた方ありがとうございました。

投稿2021/03/30 06:58

Mr.sijimi

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サーバー名の欄に、localhostあるいは127.0.0.1って入れればいいと思います。
(それとも、それを書いても動かない、って意味でしょうか?)

そのRubyの方でもうまく行かないのは、入力するべきサーバー名の箇所を省略しているからではないですか。

投稿2021/03/23 07:28

編集2021/03/23 07:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.sijimi

2021/03/23 07:35 編集

回答ありがとうございます。 サーバー名の箇所に「localhost」「127.0.0.1」でそれぞれ試してみましたが、やはりできませんでした。 入力すべきサーバー名がある可能性を見て、調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問