📜  Ruby on Rails-数据库设置

📅  最后修改于: 2020-10-20 05:26:35             🧑  作者: Mango


在开始本章之前,请确保您的数据库服务器已启动并正在运行。 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知道数据库的用户名和密码。您可以在创建的Rails应用程序的library \ config子目录中的database.yml文件中执行此操作。该文件包含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知道数据库的用户名和密码。您可以在创建的Rails应用程序的library \ config子目录中的database.yml文件中执行此操作。该文件包含PostgreSQL数据库的实时配置部分。在每个部分中,您需要更改用户名和密码行,以反映对已创建数据库的权限。

完成后,它应如下所示-

default: &default
   adapter: postgresql
   encoding: unicode
  
development:
   adapter: postgresql
   encoding: unicode
   database: library_development
   username: rubyuser
   password: 

test:
   adapter: postgresql
   encoding: unicode
   database: library_test
   username: rubyuser
   password: 
 
production:
   adapter: postgresql
   encoding: unicode
   database: library_production
   username: rubyuser
   password: 

接下来是什么?

接下来的两章介绍了如何对数据库表建模以及如何使用Rails Migrations管理数据库表。