Ruby on Rails - 資料庫設定



在開始本章之前,請確保您的資料庫伺服器已啟動並正在執行。Ruby on Rails 建議建立三個資料庫 - 每個環境(開發、測試和生產)一個數據庫。按照慣例,它們的名字應該是:

  • library_development
  • library_production
  • library_test

您應該初始化所有三個資料庫,併為它們建立一個具有完整讀寫許可權的使用者和密碼。我們正在為我們的應用程式使用root使用者ID。

MySQL 資料庫設定

在 MySQL 中,我們正在為我們的應用程式使用root使用者ID。您執行此操作的 MySQL 控制檯會話看起來類似於:

mysql> create database library_development;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on library_development.*
to 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

您可以對另外兩個資料庫library_productionlibrary_test執行相同的操作。

配置database.yml

此時,您需要讓 Rails 瞭解資料庫的使用者名稱和密碼。您可以在database.yml檔案中執行此操作,該檔案位於您建立的 Rails 應用程式的library\config子目錄中。此檔案包含 MySQL 資料庫的活動配置部分。在您使用的每個部分中,您需要更改使用者名稱和密碼行以反映您建立的資料庫上的許可權。

完成後,它應該如下所示:

development:
   adapter: mysql
   database: library_development
   username: root
   password: [password]
   host: localhost
	
test:
   adapter: mysql
   database: library_test
   username: root
   password: [password]
   host: localhost
   
production:
   adapter: mysql
   database: library_production
   username: root
   password: [password]
   host: localhost

PostgreSQL 資料庫設定

預設情況下,PostgreSQL 不提供任何使用者。我們必須建立新使用者。使用以下命令建立名為rubyuser的使用者。

tp> sudo -u postgres createuser rubyuser -s

如果要為新使用者建立密碼,請使用以下命令。

tp> sudo -u postgres psql

postgres=# \password rubyuser

使用以下命令建立資料庫library_development

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

使用以下命令建立資料庫library_production

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

使用以下命令建立資料庫library_test

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

Ctrl+D終止 PosgreSQL。

配置database.yml

此時,您需要讓 Rails 瞭解資料庫的使用者名稱和密碼。您可以在database.yml檔案中執行此操作,該檔案位於您建立的 Rails 應用程式的library\config子目錄中。此檔案包含 PostgreSQL 資料庫的活動配置部分。在每個部分中,您需要更改使用者名稱和密碼行以反映您建立的資料庫上的許可權。

完成後,它應如下所示:

default: &default
   adapter: postgresql
   encoding: unicode
  
development:
   adapter: postgresql
   encoding: unicode
   database: library_development
   username: rubyuser
   password: <Password for rubyuser>

test:
   adapter: postgresql
   encoding: unicode
   database: library_test
   username: rubyuser
   password: <Password for rubyuser>
 
production:
   adapter: postgresql
   encoding: unicode
   database: library_production
   username: rubyuser
   password: <Password for rubyuser>

接下來是什麼?

接下來的兩章將解釋如何對資料庫表進行建模,以及如何使用 Rails 遷移來管理這些表。

廣告

© . All rights reserved.