このガイドでは、データベースに接続するために環境変数を使用する必要がある理由と、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
に保存することはお勧めしません。 ファイル。また、すべての開発者のデータベースの詳細、つまりユーザー名とパスワードは異なる場合があります。コードをプッシュするたびに、ファイルに競合が発生します。これが、データベースのクレデンシャルをデータベース構成ファイルに直接書き込むのではなく、環境変数に格納する必要がある理由です。
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アプリケーションの環境変数を使用してデータベース接続を構成する必要があります。唯一の開発者であれば、デフォルトのデータベース構成ファイルを使用するだけです。