前書き
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アプリケーションで開発を開始する準備が整いました。
がんばろう!