用Rails中Rake管理MySQL数据库
2008-02-19 11:06:11 来源:WEB开发网%>rubyscript/generatemigrationyour_desired_migration_name
二、从Fixture中加载数据
在创建一个应用程序时,我们往往遇到这样的情况,手边已经有了一些数据,需要将这些现成的数据融合到应用程序的数据库中去。例如,在进行客户的结帐时,往往需要询问客户,以确定他们居住在哪个州。因为州名可能在程序中很多地方使用到,于是就有必要创建一个名为state的model。但这里又不想手工的创建这样的表格,因为这样做不只是很烦琐,更重要的是可能导致错误。
这个时候,就可以使用fixtures这一功能了。它最初的目的,是为了在进行程序测试时,简化从示例数据向测试数据的转换工作。Fixture是包含运行测试时使用数据的文件。但是,稍微加工一下,我们也可使用它们在migration迁移期间来加载数据。
但后来的事实证明,这是一种很不错的方法,可以使用种子数据生成测试的Model,例如前面所提到的州名。所需要做的工作就是把数据按照fixtures的格式进行组织,这里的格式要求有两点:YAML(YAML Ain't Markup Language,这是一种数据序列化(serialization)语言,是一种可读的文本的数据结构,它的设计目标是使人们容易读,程序容易处理。它类似XML,但是比XML简单)及comma-separated(逗号分隔)。
下面将展示如何通过逗号分隔的fixture文件,用于保存州名,并且使用Rake来生成包含这些数据的数据表。这是假定读者已经创建了state model及migration文件,接下来生成数据表。
首先,请记住Rails的编辑习惯,因此这里应该在项目的test/fixtures目录下创建我们的fixtures,因为这些数据最主要的用途还是用来进行测试。当然了,在项目的db目录下面还可以创建seed目录,用于存放种子数据。
- ››Rails之一:Windows 搭建Rails+Aptana
- ››管理/var/spool/clientmqueue/下的大文件
- ››Rails系统重构:从单一复杂系统到多个小应用集群
- ››管理私有云,第 2 部分: 使用 WebSphere CloudBur...
- ››管理 Eclipse 环境:Eclipse 维护的神秘艺术
- ››管理私有云:WebSphere CloudBurst Appliance 命令...
- ››管理启动项 - Windows 7中的BCDEDIT命令
- ››管理Exchange 2003注意事项
- ››管理好超级管理员帐户堵住系统漏洞
- ››管理数据中心资源池需要注意的事项
- ››管理虚拟化环境的两大重要标准:VMAN和OVF
- ››管理与技术有机结合 保障网络安全运行
更多精彩
赞助商链接