CentOS 7上のRuby on RailsアプリケーションでPostgreSQLを使用する方法

前書き

Ruby on Railsは、デフォルトのデータベースとしてsqlite3を使用します。これは多くの場合うまく機能しますが、アプリケーションには十分ではない場合があります。 アプリケーションに、https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresqlなどのクライアント/サーバーSQLデータベースのスケーラビリティ、集中化、および制御(またはその他の機能)が必要な場合-リレーショナルデータベース管理システムの比較[PostgreSQLまたはMySQL]を実行するには、いくつかの追加手順を実行する必要があります。

このチュートリアルでは、アプリケーションがCentOS 7またはRHELサーバーでPostgreSQLデータベースを使用できるようにする開発用Ruby on Rails環境をセットアップする方法を示します。 最初に、PostgreSQLのインストールおよび設定方法について説明します。 次に、データベースサーバーとしてPostgreSQLを使用するRailsアプリケーションの作成方法を示します。

前提条件

このチュートリアルでは、動作するRuby on Rails開発環境が必要です。 まだお持ちでない場合は、次のリンクのチュートリアルをご覧ください:https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos -7 [CentOS 7でrbenvを使用してRuby on Railsをインストールする方法]。

また、PostgreSQLデータベースソフトウェアをインストールできるように、スーパーユーザー、または「+ sudo +」アカウントにアクセスする必要があります。

このガイドでは、SELinuxが無効になっていることも想定しています。

準備ができたら、PostgreSQLをインストールしましょう。

PostgreSQLをインストールする

PostgreSQLをまだインストールしていない場合は、今すぐそれを行いましょう。

まだ行っていない場合は、次のコマンドでEPELリポジトリをyumに追加します。

sudo yum install epel-release

PostgreSQLサーバーとその開発ライブラリをインストールします。

sudo yum install postgresql-server postgresql-contrib postgresql-devel

PostgreSQLはインストールされていますが、基本的な設定を行う必要があります。

新しいPostgreSQLデータベースクラスターを作成します。

sudo postgresql-setup initdb

デフォルトでは、PostgreSQLはパスワード認証を許可しません。 ホストベースの認証設定を編集して、これを変更します。

お気に入りのテキストエディターでHBA構成を開きます。 viを使用します。

sudo vi /var/lib/pgsql/data/pg_hba.conf

ファイルの下部近くにある次のような行を見つけます。

pg_hba.confの抜粋(オリジナル)

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

次に、「ident」を「md5」に置き換えて、次のようにします。

pg_hba.confの抜粋(更新)

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

保存して終了。 PostgreSQLはパスワード認証を許可するように設定されました。

PostgreSQLを起動して有効にします。

sudo systemctl start postgresql
sudo systemctl enable postgresql

これでPostgreSQLがインストールされましたが、Railsアプリケーションが使用する新しいデータベースユーザーを作成する必要があります。

データベースユーザーの作成

まず、 `+ postgres +`システムユーザーに変更します。

sudo su - postgres

次のコマンドを使用して、PostgreSQLスーパーユーザーユーザーを作成します(強調表示された単語を独自のユーザー名に置き換えます)。

createuser -s

データベースユーザーのパスワードを設定するには、次のコマンドでPostgreSQLコンソールを入力します。

psql

PostgreSQLコンソールは、 `+ postgres =#+`プロンプトで示されます。 PostgreSQLプロンプトで、次のコマンドを入力して、作成したデータベースユーザーのパスワードを設定します。

\password

プロンプトで希望のパスワードを入力し、確認します。

次のコマンドを入力して、PostgreSQLコンソールを終了できます。

\q

PostgreSQLユーザーがセットアップされたので、通常のユーザーに切り替えます。

exit

次にRailsアプリケーションを作成しましょう。

新しいRailsアプリケーションを作成する

ホームディレクトリに新しいRailsアプリケーションを作成します。 `+ -d postgresql +`オプションを使用してPostgreSQLをデータベースとして設定し、強調表示された単語をアプリケーション名に置き換えてください:

cd ~
rails new  -d postgresql

次に、アプリケーションのディレクトリに移動します。

cd

次のステップは、アプリケーションのデータベース接続を構成することです。

データベース接続の構成

作成したPostgreSQLユーザーは、アプリケーションのテストおよび開発データベースの作成に使用されます。 アプリケーションに適切なデータベース設定を構成する必要があります。

お気に入りのテキストエディターでアプリケーションのデータベース構成ファイルを開きます。 viを使用します。

vi config/database.yml

`+ default +`セクションの下で、「pool:5」という行を見つけ、その下に次の行を追加します。 次のようになります(強調表示されている部分をPostgreSQLユーザーとパスワードに置き換えます)。

config / database.ymlの抜粋

 host: localhost
 username:
 password:

保存して終了。

アプリケーションデータベースを作成する

次のrakeコマンドを使用して、アプリケーションの + development`および + test`データベースを作成します。

rake db:create

これにより、PostgreSQLサーバーに2つのデータベースが作成されます。 たとえば、アプリケーションの名前が「appname」の場合、「appname_development」および「appname_test」というデータベースが作成されます。

この時点でエラーが発生した場合は、前のサブセクション(データベース接続の設定)を再確認して、 + database.yml +`の `+ host ++ username +、および `+ password +`が正しいことを確認してください。 データベース情報が正しいことを確認した後、アプリケーションデータベースを再度作成してください。

テスト構成

アプリケーションがPostgreSQLデータベースを使用できることをテストする最も簡単な方法は、実行することです。

たとえば、開発環境(デフォルト)を実行するには、次のコマンドを使用します。

rails server

これにより、ローカルホストのポート3000でRailsアプリケーションが起動します。

Railsアプリケーションがリモートサーバー上にあり、Webブラウザーからアクセスしたい場合、簡単な方法は、サーバーのパブリックIPアドレスにバインドすることです。 まず、サーバーのパブリックIPアドレスを検索してから、次のように `+ rails server +`コマンドで使用します:

rails server --binding=

これで、ポート3000のサーバーのパブリックIPアドレスを介して、WebブラウザーでRailsアプリケーションにアクセスできるようになります。

Webブラウザーでアクセスします。

http://:3000

「Welcome aboard」Ruby on Railsページが表示された場合、アプリケーションは適切に構成されており、PostgreSQLデータベースに接続されています。

結論

これで、CentOS 7でPostgreSQLをデータベースとして使用して、Ruby on Railsアプリケーションで開発を開始する準備が整いました。

がんばろう!