デフォルトのデータベースSQLite3はRubyon Railsでうまく機能しますが 、場合によっては使用しないでください。たとえば、Railsアプリケーションが多数のユーザーによって同時にアクセスされている場合、SQLiteは推奨されません。 MySQLやPostgreSQLのような、スケーラビリティ、同時実行性、集中化、および制御を提供する、より堅牢なデータベースを試す必要があります。 MySQLとRailsアプリケーションの使用方法はすでに知っていました。 。今日は、UbuntuLinuxでRubyonRailsアプリケーションでPostgreSQLを使用する方法を説明します。
前提条件
Linuxシステムに最新のRubyonRailsがすでにインストールされていると思います。そうでない場合は、次のガイドを参照してください。
- LinuxにRubyOnRailsをインストールする方法
1。 PostgreSQLをインストールする
Debian、Ubuntu、およびその派生物にPostgreSQLをインストールするには、次のコマンドを実行します。
$ sudo apt install postgresql postgresql-contrib libpq-dev
このコマンドは、必要なすべての依存関係とともにPostgreSQLをインストールします。ここでは、libpq-dev
は、クライアントプログラムがPostgreSQLバックエンドサーバーにクエリを渡し、これらのクエリの結果を受信できるようにするPostgreSQLライブラリです。このライブラリは、RailsアプリケーションをセットアップするときにPostgreSQLに接続するために必要です。
postgresqlサービスが開始され、起動時に有効になっていることを確認してください:
$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql
postgresqlサービスの現在のステータスを表示するには、次を実行します。
$ systemctl status postgresql
1.1。新しいデータベースの役割を作成する
データベースまたはRailsアプリケーションを作成および構成するには、専用のデータベースユーザー(ロール)が必要です。
PostgreSQLで新しいデータベースの役割を作成するには、ターミナルから次のコマンドを実行します。
$ sudo -u postgres createuser -s ostechnix -P
ここで
-
sudo -u postgres
-postgres
からコマンドを実行できます アカウント。 -
createuser -s ostechnix
-ostechnix
という名前の新しい役割を作成します スーパーユーザー権限で。 -
-P
-新しい役割のパスワードを入力するように求められます。
2。 LinuxのRubyonRailsアプリケーションでPostgreSQLを使用する
ostechnixapp
という新しいRailsアプリケーションを作成するには PostgreSQLをデフォルトのデータベースとして使用し、次のコマンドを実行します:
$ rails new ostechnixapp -d postgresql
これにより、ostechnixapp
というRailsアプリケーションが作成されます。 ostechnixapp
という名前のディレクトリにあります Gemfile
ですでに言及されているgem依存関係をインストールします bundle install
を使用する 。
ostechnixapp
を作成した後 アプリケーション、そのディレクトリに切り替えます:
$ cd ostechnixapp/
アプリケーションのデータベース構成ファイルを編集します:
$ vi config/database.yml
default
の下 セクションで、前の手順で作成したPosgreSQLデータベースロールとそのパスワードを追加します。
[...] 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: Password123#@! [...]

ユーザー名とそのパスワードを自分のものに置き換えます。 ESC
を押します :wq
と入力します ファイルを保存して閉じます。
次に、コマンドを使用してRailsアプリケーションの新しいデータベースを作成します。
$ rake db:create
これにより、Railsアプリケーションの名前で2つのデータベースが作成されます。たとえば、アプリケーション名がostechnixappの場合、ostechnixapp_development
が作成されます。 およびostechnixapp_test
。
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
データベースがPosgreSQLからも正常に作成されているかどうかを確認できます。
PosgreSQLにログインします:
$ sudo -u postgres psql
postgresqlプロンプトで、\l
を実行します 利用可能なデータベースを一覧表示するには:
postgres=# \l
出力例:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------------------+-----------+----------+---------+---------+----------------------- ostechnixapp_development | ostechnix | UTF8 | C.UTF-8 | C.UTF-8 | ostechnixapp_test | ostechnix | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows) postgres=#

\q
と入力して、PostgreSQLプロンプトを終了します。 。
postgres=# \q
次に、コマンドを使用してRailsWebサーバーを起動します。
$ rails server -b 0.0.0.0
これにより、デフォルトのポート3000
でRailsアプリケーションが起動します 。ここでは、引数-b 0.0.0.0
を渡しました。 ローカルエリアネットワーク上の任意のマシンからRailsアプリケーションにアクセスするため。
Webブラウザーを開き、次のURLに移動してRailsテストページにアクセスします:http://ip-address:3000
。

別のポートを使用する場合は、 -pを渡します 以下のようにポート番号とともにフラグを立てます:
$ rails server -b 0.0.0.0 -p 8080
これで、Railsアプリケーションに次のURLからアクセスできます:http://ip-address:8080
。
3。 Railsアプリケーションを削除する
デフォルトのデータベースであるSQLiteを使用している場合は、アプリディレクトリを削除するだけでRailsアプリケーションを削除できます。
$ rm -fr ostechnixapp
PostgreSQLを使用したことがある場合は、最初にコマンドを使用してアプリケーションの関連データベースを削除する必要があります:
$ rake db:drop
次に、アプリケーションディレクトリを削除します:
$ rm -fr ostechnixapp
結論
これで、PostgreSQLをデータベースとして使用してRailsアプリケーションを作成する方法がわかりました。すでに述べたように、アプリケーションが多数のユーザーによって積極的に使用されている場合は、PostgreSQLまたはMySQLを使用する必要があります。これは、将来データベースを拡張したり、削除システムからデータベースを管理したりする場合にも役立ちます。
関連記事:
- Railsの環境変数を使用してデータベース接続を構成する