甚至默認數據庫 SQLite3 鐵路上的紅寶石, 在某些情況下不應該使用。例如,如果您有許多用戶同時訪問您的 Rails 應用程序,則不建議使用 SQLite。您應該嘗試更強大的數據庫,例如 MySQL 或 PostgreSQL,它們提供可擴展性、並發性、集中化和控制。我們已經知道如何使用 MySQL 和 Rails 應用程序今天我將向你展示如何在 Ubuntu Linux 上的 Ruby on Rails 應用程序中使用 PostgreSQL。
內容
先決條件
假設您在 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#@!
[...]
替換您自己的用戶名和密碼。根據 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=#
從 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
.

如果你想使用另一個端口, -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 中使用環境變量配置數據庫連接
數據庫LinuxPostgreSQLRuby on Rails with Postgresql 和 rails