Ruby on Rails - Thiết lập cơ sở dữ liệu

Trước khi bắt đầu với chương này, hãy đảm bảo rằng máy chủ cơ sở dữ liệu của bạn đang hoạt động. Ruby on Rails khuyến nghị tạo ba cơ sở dữ liệu - mỗi cơ sở dữ liệu dành cho môi trường phát triển, thử nghiệm và sản xuất. Theo quy ước, tên của họ phải là -

  • library_development
  • library_production
  • library_test

Bạn nên khởi tạo cả ba và tạo người dùng và mật khẩu cho chúng với đầy đủ các đặc quyền đọc và ghi. Chúng tôi đang sử dụngroot ID người dùng cho ứng dụng của chúng tôi.

Thiết lập cơ sở dữ liệu cho MySQL

Trong MySQL, chúng tôi đang sử dụng rootID người dùng cho ứng dụng của chúng tôi. Phiên bảng điều khiển MySQL mà bạn thực hiện việc này trông giống như sau:

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)

Bạn có thể làm điều tương tự cho hai cơ sở dữ liệu khác library_productionlibrary_test.

Định cấu hình database.yml

Tại thời điểm này, bạn cần cho Rails biết về tên người dùng và mật khẩu của cơ sở dữ liệu. Bạn làm điều này trong tệpdatabase.yml, có sẵn trong library\configthư mục con của Ứng dụng Rails bạn đã tạo. Tệp này có các phần cấu hình trực tiếp cho cơ sở dữ liệu MySQL. Trong mỗi phần bạn sử dụng, bạn cần thay đổi dòng tên người dùng và mật khẩu để phản ánh các quyền trên cơ sở dữ liệu bạn đã tạo.

Khi bạn hoàn thành, nó sẽ trông giống như -

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

Thiết lập cơ sở dữ liệu cho PostgreSQL

Theo mặc định, PostgreSQL không cung cấp cho bất kỳ người dùng nào. Chúng tôi phải tạo người dùng mới. Sử dụng lệnh sau để tạo người dùng có tênrubyuser.

tp> sudo -u postgres createuser rubyuser -s

Nếu bạn muốn tạo mật khẩu cho người dùng mới, hãy sử dụng lệnh sau.

tp> sudo -u postgres psql

postgres=# \password rubyuser

Sử dụng lệnh sau để tạo cơ sở dữ liệu library_development.

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

Sử dụng lệnh sau để tạo cơ sở dữ liệu library_production.

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

Sử dụng lệnh sau để tạo cơ sở dữ liệu library_test.

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

nhấn Ctrl+D để chấm dứt PosgreSQL.

Định cấu hình database.yml

Tại thời điểm này, bạn cần cho Rails biết tên người dùng và mật khẩu cho cơ sở dữ liệu. Bạn làm điều này trong tệpdatabase.yml, có sẵn trong library\configthư mục con của Ứng dụng Rails bạn đã tạo. Tệp này có các phần cấu hình trực tiếp cho cơ sở dữ liệu PostgreSQL. Trong mỗi phần, bạn cần thay đổi các dòng tên người dùng và mật khẩu để phản ánh các quyền trên cơ sở dữ liệu bạn đã tạo.

Khi bạn hoàn thành, nó sẽ trông như sau:

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>

Tiếp theo là gì?

Hai chương tiếp theo giải thích cách lập mô hình các bảng cơ sở dữ liệu của bạn và cách quản lý các bảng đó bằng Rails Migrations.