您所在的位置: 首页>>读书频道>>设计开发>>其它开发>>

2.1.2 配置数据库

http://book.51cto.com  2008-04-02 15:06  李刚 郭秋霞  电子工业出版社  我要评论(0)
  • 摘要:《Ruby on Rails敏捷开发最佳实践》第2章向读者示范如何开发一个简单的Rails应用,这个Rails应用是一个简单的留言系统。本文讲了配置数据库。
  • 标签:Rails  Ruby on Rails敏捷开发最佳实践

2.1.2  配置数据库

生成scaffold需要进行持久层访问,因此,我们必须先进行数据库配置。数据库配置写在firstApp应用的\config\ database.yml文件中,打开该文件,看到如下代码(不包含注释)。

development:
adapter: mysql
database: firstApp_development
username: root
password:
host: localhost
test:
adapter: mysql
database: firstApp_test
username: root
password:
host: localhost
production:
adapter: mysql
database: firstApp_production
username: root
password:
host: localhost


上面的代码大致可分为三部分,每部分的结构相同,分别表示在开发环境(development)、测试环境(test)和产品环境(production)下的数据库配置。当我们使用rails命令生成一个应用框架后,这个database.yml文件中就已经默认有了绝大部分配置参数的值,我们只需在password:后增加连接数据库所用的密码,就可以告诉Rails系统如何连接数据库。而我们在开发一个Rails应用时,只需要关注development部分的代码即可。因此,我们只需为development部分添加password参数的值。

提示  Rails使用YML文件进行配置管理,YML文件和XML文件有大致相似的格式和功能,但更加简洁。例如上面的代码中可以认为development是一个父元素,该元素下有5个子元素,分别指定连接数据库所用的适配器、数据库名、数据库用户名、数据库密码和数据库服务所在的主机。

Rails应用的数据库配置方式,体现了Rails的约定优于配置的原则。Rails约定:当一个Rails应用程序启动时,它会自动寻找根路径下的\config\database.yml文件,查看当前运行环境(development或test或production)中的数据库连接部分,按照这部分的配置进行数据库连接。因此,当我们需要进行数据库连接时,只需要按照Rails约定的方式,在database.yml文件中找到相应的运行环境的设置部分,添加其password的值。

此外,Rails默认是根据database.yml文件中名为development的数据库配置建立连接的。

注意  更改数据库配置文件之后,必须重启服务器,才能使对数据库连接所做的更改生效。

现在假设我们需要开发一个简单的用户注册、用户登录应用,为此,我们需要建立一个用户数据表来保存系统的注册用户,下面是创建用户数据表所使用的数据库脚本。

drop database if exists firstApp_development;
-- 创建数据库
create database firstApp_development;
use firstApp_development;
-- 创建用户表:users
create table users (
id int not null auto_increment,
-- 定义用户名字段:name
name varchar(100) not null unique,
-- 定义密码字段:password
password varchar(100) not null,
-- 定义主键
primary key (id)
);

在MySQL的控制台导入上面数据库脚本,就可以创建本应用的开发数据库和用户表。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
JavaScript完全自学宝典
C# 3.0完全自学宝典
Visual Basic完全自学宝典
Visual C++ 6.0完全自学宝典
Ajax实战:实例详解
 
 验证码: (点击刷新验证码)   匿名发表
  • 野蛮生长

  • 作者:冯仑著
  • “地产界的思想家”冯仑纵横生意江湖20年来,第一次系统梳理出书。  三十年来中国民营企业从前公司时代发展到公司时代,21..
Copyright©2005-2008 51CTO.COM 版权所有