甚至默認數據庫 SQLite3 Ruby on Rails, 在某些情況下不要使用。例如,如果許多用戶同時訪問您的 Rails 應用程序,則不建議使用 SQLite。 您應該嘗試提供可擴展性、並發性、集中化和控制的更強大的數據庫,例如 MySQL 和 PostgreSQL。我已經知道如何使用它了 MySQL 和 Rails 應用程序..今天,我將向您展示如何在 Ubuntu Linux 上的 Ruby on Rails 應用程序中使用 PostgreSQL。

內容

  1. 先決條件
  2. 1.安裝PostgreSQL
    1. 1.1。創建一個新的數據庫角色
  3. 2. 在 Linux 上使用 PostgreSQL 和 Ruby on Rails 應用程序
  4. 3. 刪除 Rails 應用
    1. 結論是

先決條件

我認為您的 Linux 系統上安裝了最新的 Ruby on Rails。如果沒有,請參閱下面的指南。

  • 如何在 Linux 上安裝 Ruby On Rails

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 上使用 PostgreSQL 和 Ruby on Rails 應用程序

創建一個新的 Rails 應用程序,名為 ostechnixapp 使用 PostgreSQL 作為默認數據庫並運行以下命令:

$ rails new ostechnixapp -d postgresql

這將創建一個 Rails 應用程序。 ostechnixapp 在命名目錄中 ostechnixapp 安裝已經提到的 gem 依賴項 Gemfile 利用 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#@!
[...]
在 Rails 應用程序數據庫配置文件中設置 PostgreSQL 用戶及其密碼

將其替換為您的用戶名和密碼。根據 ESC 進入 :wq 保存並關閉文件。

然後使用以下命令為您的 Rails 應用程序創建一個新數據庫。

$ rake db:create

這將使用 Rails 應用程序的名稱創建兩個數據庫。例如,如果應用名稱為 ostechnixapp,則創建如下: ostechnixapp_development 什麼時候 ostechnixapp_test..

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

您還可以驗證數據庫是否已從 PosgreSQL 成功創建。

登錄到 PostgreSQL。

$ 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=# 
在 Ruby on Rails 應用程序中使用 PostgreSQL

從 PostgreSQL 提示符輸入的退出 q..

postgres=# q

然後使用以下命令啟動 Rails Web 服務器:

$ rails server -b 0.0.0.0

這將在默認端口上啟動您的 Rails 應用程序 3000..在這里傳遞參數 -b 0.0.0.0 從 LAN 上的任何機器訪問您的 Rails 應用程序。

打開 Web 瀏覽器並轉到以下 URL 以訪問 Rails 測試頁面。 https://ip-address:3000..

Ruby on Rails 應用程序測試頁面Ruby on Rails 應用程序測試頁面

如果你想使用不同的端口 -p 標誌和端口號是:

$ rails server -b 0.0.0.0 -p 8080

您現在可以通過以下 URL 訪問您的 Rails 應用程序: https://ip-address:8080..

3. 刪除 Rails 應用

如果您使用默認數據庫 SQLite,您可以通過簡單地刪除 app 目錄來刪除 Rails 應用程序。

$ rm -fr ostechnixapp

如果您之前使用過 PostgreSQL,您應該首先使用以下命令刪除應用程序的相關數據庫:

$ rake db:drop

然後刪除應用程序目錄。

$ rm -fr ostechnixapp

結論是

現在您知道瞭如何使用 PostgreSQL 作為數據庫來創建 Rails 應用程序。如前所述,如果您的應用程序正被大量用戶積極使用,您應該使用 PostgreSQL 或 MySQL。如果您希望將來擴展數據庫以從 drop 系統管理它,這也很有用。

相關閱讀:

  • 使用 Rails 環境變量配置數據庫連接

數據庫 Linux PostgreSQL Ruby on Rails 與 postgresql 和 rails