甚至默認數據庫 SQLite3 Ruby on Rails, 在某些情況下不要使用。例如,如果許多用戶同時訪問您的 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 環境變量配置數據庫連接
數據庫 Linux PostgreSQL Ruby on Rails 與 postgresql 和 rails