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

用Rails中Rake管理MySQL数据库

 2008-02-19 11:06:11 来源:WEB开发网   
核心提示: 然后,创建state.csv文件,用Rails中Rake管理MySQL数据库(4),并存放在db/seed目录下面,该文件的内容如下:id, name, abbreviation1, Alabama, AL2, Alaska, AK3, Arizona, AZ4, Arkansas, AR

然后,创建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)。

上一页  1 2 3 4 

Tags:Rails Rake 管理

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