GNU/Linux >> Linux の 問題 >  >> Linux

Railsの環境変数を使用してデータベース接続を構成する

このガイドでは、データベースに接続するために環境変数を使用する必要がある理由と、LinuxのRailsアプリケーションで環境変数を使用してデータベース接続を構成する方法について説明します。

データベースを構成するために環境変数を使用する理由

すべてのRailsアプリケーションは、それぞれのデータベースと対話します。 Railsアプリケーションでデータベースに接続する方法は2つあります。 config/database.ymlというデータベース構成ファイルを介してデータベースに接続できます または、ENV['DATABASE_URL']という環境変数を使用します 。 MySQLデータベースを使用してRailsアプリケーションを作成する方法についてはすでに説明しました。 またはPostgreSQLデータベース 。これらの2つのガイドでは、config/database.ymlを使用してデータベース接続を構成しました ファイル。

Railsプロジェクトで作業しているのが1人だけの場合は、データベースのクレデンシャルをconfig/database.ymlに保存しても問題ありません。 ファイル。ただし、プロジェクトがパブリックGitリポジトリでホストされており、多くの開発者がプロ​​ジェクトに取り組んでいる場合は、パスワードなどの機密情報をconfig/database.ymlに保存することはお勧めしません。 ファイル。また、すべての開発者のデータベースの詳細、つまりユーザー名とパスワードは異なる場合があります。コードをプッシュするたびに、ファイルに競合が発生します。これが、データベースのクレデンシャルをデータベース構成ファイルに直接書き込むのではなく、環境変数に格納する必要がある理由です。

Railsアプリケーションの環境変数を使用してデータベース接続を構成します

Linuxマシンに最新のRubyonRailsがあると思います。 Ruby on Railsをまだインストールしていない場合は、次のガイドを参照してください。

  • LinuxにRubyOnRailsをインストールする方法

次に、新しいRailsアプリケーションを作成します。 RailsアプリケーションでMySQLを使用する場合は、次のコマンドを実行して、新しいRailsアプリケーション(ostechnixapp)を作成します。 :

$ rails new ostechnixapp -d mysql

RailsアプリケーションでPostgreSQLを使用する場合は、ostechnixappという新しいRailsアプリケーションを作成します。 以下のように:

$ rails new ostechnixapp -d postgresql

次に、データベースユーザーのパスワードを使用して、ユーザーのプロファイルファイルに新しい環境変数を追加します(例:~/.bashrc)。 。

$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc

上記のコマンドで、"OSTECHNIXAPP"を置き換えます アプリケーション名と"Database_User_Password"を使用 実際のデータベースユーザーのパスワードを使用します。

~/.bashrcを入手する 変更をすぐに更新するファイル:

$ source ~/.bashrc

次に、アプリケーションディレクトリに切り替えます。

$ cd ostechnixapp/

アプリケーションのデータベース構成ファイルを編集します:

$ vi config/database.yml

MySQLを使用している場合は、~/.bashrcに追加したデータベースユーザー名と環境変数を追加します。 前の手順のdefaultの下のファイル セクション。これがMySQL構成ファイルに追加したものです:

[...]
default: &default
   adapter: mysql2
   encoding: utf8mb4
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: root
   password: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %>
   socket: /var/run/mysqld/mysqld.sock
[...]

ここでも、OSTECHNIXAPP_DATABASE_PASSWORDを置き換える必要があります 正しい環境変数を使用します。

PostgreSQLを使用している場合は、defaultの下にデータベースの役割と環境変数を追加します 以下のようなセクション:

[...]
default: &default
   adapter: postgresql
   encoding: unicode
   # For details on connection pooling, see Rails configuration guide
   # https://guides.rubyonrails.org/configuring.html#database-pooling
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: ostechnix
   password: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %>
[...]

データベースユーザーロールと環境変数を追加したら、ESCを押します。 キーを押して:wqと入力します 変更を保存してファイルを終了します。

最後に、次のコマンドを使用してRailsアプリケーションのデータベースを作成します。

$ rake db:create

このコマンドは、2つのデータベース、つまりostechnixapp_developmentを作成します。 およびostechnixapp_test

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

次に、 pumaという組み込みのWebサーバーでRailsアプリケーションを起動します。 コマンドの使用:

$ rails server -b 0.0.0.0

Webブラウザーを開き、http://ip-address:3000に移動してRailsアプリケーションにアクセスします。 URL。 Railsのデフォルトのテストページが表示されます:

すでに述べたように、データベースパスワードを他の開発者に開示したくない場合は、Railsアプリケーションの環境変数を使用してデータベース接続を構成する必要があります。唯一の開発者であれば、デフォルトのデータベース構成ファイルを使用するだけです。


Linux
  1. Ssh –すでに確立されているSshチャネルを使用していますか?

  2. MySQL スレーブ データベースの構成方法

  3. sed での環境変数の置換

  1. シェルコマンドを使用してGDB内で環境変数を設定するには?

  2. sudo su に環境変数を渡す方法

  3. 配列を環境変数として使用できません

  1. ProxmoxVEを使用したサーバー仮想化環境のセットアップ

  2. Linux環境変数のヒントとコツ

  3. MySQLデータベースを使用してWSO2APIManagerを構成する