GNU/Linux >> Linux の 問題 >  >> Linux

RubyOnRailsアプリケーションでPostgreSQLを使用する方法

デフォルトのデータベース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の環境変数を使用してデータベース接続を構成する

Linux
  1. libvirtでVagrantを使用する方法

  2. RubyでLinuxデスクトップアプリケーションを作成する

  3. Linux 上の Python で export を使用する方法

  1. RubyonRailsアプリケーションの環境をセットアップする方法

  2. Ubuntu16.04でPostgreSQLを使用してRubyonRails(RoR)をインストールする方法

  3. Ubuntu15.04にPostgreSQLとNginxを使用してGitlabをインストールする方法

  1. CentOS7でPostgreSQLを使用してRubyonRailsをインストールして使用する方法

  2. RockyLinux8.4でPostgreSQLを使用してRubyonRailsをインストールする方法

  3. Ubuntu20.04にRubyonRailsをインストールする方法