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_production 和 library_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 Migrations 管理这些表。