序章

Ruby on Railsはデフォルトのデータベースとしてsqlite3を使用します。これは多くの場合うまく機能しますが、アプリケーションには不十分な場合があります。 アプリケーションで、PostgreSQLやMySQLなどのクライアント/サーバーSQLデータベースのスケーラビリティ、集中化、および制御(またはその他の機能)が必要な場合は、アプリケーションを起動するためにいくつかの追加手順を実行する必要があります。と実行しています。

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

前提条件

このチュートリアルでは、RubyonRails開発環境が機能している必要があります。 まだお持ちでない場合は、次のリンクのチュートリアルに従ってください: CentOS7でrbenvを使用してRubyonRailsをインストールする方法。

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

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

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

PostgreSQLをインストールする

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

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

  1. sudo yum install epel-release

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

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

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

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

  1. sudo postgresql-setup initdb

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

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

  1. 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を起動して有効にします。

  1. sudo systemctl start postgresql
  2. sudo systemctl enable postgresql

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

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

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

  1. sudo su - postgres

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

  1. createuser -s pguser

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

  1. psql

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

  1. \password pguser

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

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

  1. \q

PostgreSQLユーザーが設定されたので、通常のユーザーに切り替えます。

  1. exit

それでは、Railsアプリケーションを作成しましょう。

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

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

  1. cd ~
  2. rails new appname -d postgresql

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

  1. cd appname

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

データベース接続の構成

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

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

  1. vi config/database.yml

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

config/database.ymlの抜粋
  host: localhost
  username: pguser
  password: pguser_password

保存して終了。

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

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

  1. rake db:create

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

この時点でエラーが発生した場合は、前のサブセクション(データベース接続の構成)に戻って、database.ymlhostusername、およびpasswordを確認してください。 ] は正しい。 データベース情報が正しいことを確認した後、アプリケーションデータベースの作成を再試行してください。

テスト構成

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

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

  1. rails server

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

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

  1. rails server --binding=server_public_IP

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

Webブラウザでアクセスします。
http://server_public_IP:3000

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

結論

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

幸運を!