WEB开发网
开发学院数据库MySQL 用Rails中Rake管理MySQL数据库 阅读

用Rails中Rake管理MySQL数据库

 2008-02-19 11:06:11 来源:WEB开发网   
核心提示: %>rubyscript/generatemigrationyour_desired_migration_name二、从Fixture中加载数据在创建一个应用程序时,我们往往遇到这样的情况,用Rails中Rake管理MySQL数据库(3),手边已经有了一些数据,需要将这些现成的数据融

%>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目录,用于存放种子数据。

上一页  1 2 3 4  下一页

Tags:Rails Rake 管理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接