三、在数据库之间迁移数据
Rails的开发者Tobias Lutke遇到了数据迁移的问题,他采用Rake任务将数据库中的数据生成YAML格式的文件,再通过Rails的Migrations功能来生成其它数据库(包括MySQL、SQLite、SQL Server以及Oracle)。在这里,不列出具体的代码,因为很长,只列出一些关键的命令就可以了。
执行下面的命令,把数据库中的数据生成YAML格式:
%>rake db:backup:write
于是,数据库中的所有表都备份到了db/backup目录中了。接下来要做的就是修改database.yml文件,以指向接收数据的数据库。并运行如下的命令:
%>rake db: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)。