用Rails中Rake管理MySQL数据库
2008-02-19 11:06:11 来源:WEB开发网然后,创建state.csv文件,并存放在db/seed目录下面。该文件的内容如下:
id, name, abbreviation
1, Alabama, AL
2, Alaska, AK
3, Arizona, AZ
4, Arkansas, AR
5, California, CA
6, Colorado, CO
接下来,需要创建一个Rake文件,至于这一点,要想完全讲清楚,没有一篇比较长的文章很难。因此在这里不进行具体的解释,只列出步骤。创建seeder.task文件,并将它存放在项目的lib/tasks目录下面,该文件的内容如下所示:
namespace:dbdo
desc"Loadseedfixtures(fromdb/seed)intothecurrent
environment'sdatabase."
task:seed=>:environmentdo
require'active_record/fixtures'
Dir.glob(RAILS_ROOT+'/db/fixtures/*.csv').eachdo|file|
Fixtures.create_fixtures('db/seed',
File.basename(file,'.*'))
end
end
end
为了生成states数据表,需要在项目的目录下执行如下的命令:
%>rake db:seeder
登陆MySQL数据库服务器,检查数据库,表已经创建好了。
三、在数据库之间迁移数据
Rails的开发者Tobias Lutke遇到了数据迁移的问题,他采用Rake任务将数据库中的数据生成YAML格式的文件,再通过Rails的Migrations功能来生成其它数据库(包括MySQL、SQLite、SQL Server以及Oracle)。在这里,不列出具体的代码,因为很长,只列出一些关键的命令就可以了。
执行下面的命令,把数据库中的数据生成YAML格式:
%>rakedb:backup:write
于是,数据库中的所有表都备份到了db/backup目录中了。接下来要做的就是修改database.yml文件,以指向接收数据的数据库。并运行如下的命令:
%>rakedb:backup:write
四、小结
作为一个Rails开发者,你可能熟练得运用“rake”运行你的测试,或者你利用“rake db:migrate”运行你的数据迁移任务(migration)。但是,你是否真正明白在那些Rake任务的背后发生了什么吗?你是否意识到,你可以编写属于你的任务,或者创建好用的属于你的Rake库文件?
本文只是介绍了Rails的数据管理功能的冰山一角,事实上,它不仅支持MySQL,还支持目前市面上的大多数数据库,诸如SQLite、PostgreSQL、SQL Server和Oracle。如果读者想了解更多这个精彩工具的功能,可以去查看Rails的官方站点的migrations documentation(http://api.rubyonrails.org/classes/ActiveRecord/Migration.html)。
- ››Rails之一:Windows 搭建Rails+Aptana
- ››管理/var/spool/clientmqueue/下的大文件
- ››Rails系统重构:从单一复杂系统到多个小应用集群
- ››管理私有云,第 2 部分: 使用 WebSphere CloudBur...
- ››管理 Eclipse 环境:Eclipse 维护的神秘艺术
- ››管理私有云:WebSphere CloudBurst Appliance 命令...
- ››管理启动项 - Windows 7中的BCDEDIT命令
- ››管理Exchange 2003注意事项
- ››管理好超级管理员帐户堵住系统漏洞
- ››管理数据中心资源池需要注意的事项
- ››管理虚拟化环境的两大重要标准:VMAN和OVF
- ››管理与技术有机结合 保障网络安全运行
更多精彩
赞助商链接