利用可能なすべてのデータベースエンジンの中で、PostgreSQL は最も人気のあるものの1つです。信頼性、堅牢な機能、そしてパフォーマンスで知られる、有名なオープンソースのデータベースシステムです。PostgreSQLは人気のある選択肢であるため、ほぼすべての主要なWebフレームワークでサポートされています。競合するMySQLやSQLiteと同様に、PostgreSQLにも長所と短所があります.
Ruby on Railsは、Rubyで書かれた人気のWebフレームワークです。データベースに依存しないフレームワークであり、さまざまなデータベースと連携できます。デフォルトでは、Railsはデータベース機能にSQLを想定しています。ただし、PostgreSQLとの連携もサポートしています。
このチュートリアルでは、Ruby on Railsアプリケーション用にPostgreSQLを設定するプロセスを説明します.
Ruby on RailsとPostgreSQL
PostgreSQLとRuby on Railsは、どちらも任意のUNIX/Linuxディストリビューションで利用可能です。デフォルトのパッケージサーバーから入手できるはずです。
別の方法として、RVM(Ruby Version Manager)を使用する方法があります。これはRuby on Railsのインストールを管理するための専用ツールです。このアプローチのメリットは、RVMがRuby on Railsのローカルインストールを作成することです。また、複数のバージョンのRubyを管理し、それらの間をシームレスに切り替えることもできます。以下は、UbuntuでRVMを使用してRuby on Railsをインストールする.
手順を詳しく説明したチュートリアルです。PostgreSQLについては、UbuntuでのPostgreSQLのインストールと設定.
-
に関するクイックガイドをご覧ください。RVMのインストール
RVMが提供するインストールスクリプトのおかげで、RVMのインストールプロセスは非常に簡単です。このスクリプトはLinuxシステムを自動検出し、必要なすべてのパッケージをダウンロードしてインストールするように設計されています。パッケージを検証するには、RVMのGPGキーが必要です。これにより、受信したパッケージが偽装されていないことが保証されます。まず、RVMのGPGキーを追加します。
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

次に、RVMインストールスクリプトを実行します。
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

最後に、インストールを確認します。
|
1 |
type rvm | head -n 1 |
-
Railsのインストール
これで、RVMを使用して追加のコンポーネントをインストールできます。RVMを使用してRailsフレームワークをインストールします。
|
1 |
gem install rails |
-
PostgreSQLのインストール
次のステップでは、システムにPostgreSQLが事前にインストールされている必要があります。デフォルトでは、PostgreSQLをインストールする最も簡単な方法は、デフォルトのパッケージマネージャーを使用することです。これは、すべての主要なLinuxディストリビューションで利用可能です。利用可能なすべてのインストール方法については、PostgreSQLのダウンロードページを参照してください。Ubuntuでは、次のコマンドでPostgreSQLリポジトリを設定し、すぐにインストールできます。
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

PostgreSQLのサポートを有効にするには、 pg gemをインストールする必要があります。これにより、RubyコードからPostgreSQLとインターフェースをとることができるようになります。
|
1 |
gem install pg |
-
PostgreSQLの設定
インストール後、プロジェクトで使用する必要があるツールを設定します。まず、PostgreSQLユーザーに切り替えます。
|
1 |
su - postgres |
PostgreSQLシェルにアクセスします。
|
1 |
psql |

PostgreSQLのコンテキストで、新しい role (従来はユーザーとして知られていました)を作成します。PostgreSQLには、独自のロールと権限の形式があります。適切なユーザー名と強力なパスワードを使用することを忘れないでください。
|
1 |
create role <username> with createdb login password 'password123'; |
Railsアプリの作成
データベースにPostgreSQLを使用するように構成された新しいRailsアプリを作成するようにRailsに指示します:
|
1 |
rails new <app_name> --database=postgresql |

これにより、アプリのユーザー名を持つ新しいディレクトリが作成されます。Railsは通常、データベースのユーザー名とアプリ名が同じであることを想定しています。次のステップは、Railsのデータベース設定を構成することです。設定ファイルは次の場所にあります:
|
1 |
RAILS_ROOT/config/database.yml |
ファイル database.yml には、現在のRails環境に適したデータベースを記述するデータが含まれています。ファイル名が示すように、これには YAML が使用されます。YAMLは、すべてのプログラミング言語に対応した、人間にとって読みやすいデータシリアル化の標準規格です。
デフォルトでは、Railsは環境ごとに異なるデータベースを想定しています。たとえば、 development, test、および production です。これはさまざまな状況で役立ちます。たとえば、RailsはRailsテストが実行されるたびに、 test データベースを空にして再構築します。
以下は、 database.yml に development と test データベースを含めたサンプルです:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

変更を反映する時が来ました。次のコマンドは、 database.yml に記述されている必要なデータベースを準備します。各データベースには独自のユーザーと schema_migrations テーブルが作成されます。このテーブルは、データとスキーマのマイグレーションに必要です:
|
1 |
rake db:setup |
PostgreSQLの設定ファイルである pg_hba.conf に不適切な設定が含まれている場合、このステップは失敗します。ファイルは次の場所にあります:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
次の行が対象です。 peer の代わりに、認証方法を md5:
|
1 |
local all all peer |
行を変更します:
|
1 |
local all all md5 |

変更を反映するには、PostgreSQLサービスを再起動する必要があります:
|
1 |
sudo systemctl restart postgresql |
その後、データベースのセットアップを再実行します:
|
1 |
rake db:setup |
Railsの実行
Railsサーバーを実行するには、次の追加コンポーネントが必要です。これには、Node.jsがインストールされている 必要があります( yarn):
|
1 |
rails webpacker:install |

これでRailsアプリを起動する準備が整いました。Railsサーバーを起動します:
|
1 |
rails server |

サーバーには次のURLからアクセスできます。Railsのランディングページが表示されます:
|
1 |
http://localhost:3000 |
ランディングページをよりエキサイティングにするために、スキャフォールドを作成します:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
最後に、サーバーを起動して再度URLにアクセスします。これで投稿の管理(作成、編集、削除)ができるようになります。
最後に
これは、PostgreSQLを使用したRuby on Railsの基本的なセットアップです。公式のスタートガイド があり、Railsをさらに活用するのに役立ちます。作成したサンプルアプリはPostgreSQLを使用しています。このようにして、機能にPostgreSQLを使用する任意のアプリを作成できます。
ハッピーコンピューティング!


コメント
コメントはまだありません。最初のコメントを投稿しましょう。