weixin_42310078
2009-05-21 14:49
浏览 224
已采纳

Rails中迁移任务的回滚

在rails中我认为迁移任务就是用rails来对数据库进行操作,可是我现在对迁移任务的回滚还是不太熟练,希望大家能给提点建议或经验~~~

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • horace_lee 2009-05-21 19:13
    最佳回答

    虽然,不是确切的知道你想要的是什么,我就猜测的给你一些,我认为相关的我有用的东西吧。

    [size=large]首先[/size],你提到迁移和数据库回滚

    那么,我认为你是
    [code="ruby"]rake db:migrate version=3#可选[RAILS_ENV=development]表示什么环境用的库,version是到多少版本,也是可选[/code]
    希望了解这个的用法原理之类吗?

    那么,先说这个 :D

    rails创建数据库会自动生成一个schema_info的表在你的rails对应的数据库了,这个表只有一个字段version。标识你的数据库到什么version了。

    这个库schema_info和两个部分相关,一个你的应用程序根目录下的db/schema.rb文件,一个是db/migrate文件的序号

    当然,你也可以通过
    [code="ruby"]rake script/about
    Database schema version 83#看到版本信息[/code]

    这就大体说明了,回滚怎么用和原理吧

    [size=large]其次[/size],关于rake db还有一些其他的用法,可能对你也有用

    [code="java"]FIXTURES=config_params RAILS_ENV=production /usr/bin/rake db:YAML:restore #通常用来记载数据到数据库
    rake db:structure:dump # 导出数据库结构为一个SQL文件

    rake db:test:clone #重新创建一个测试数据库从当前环境数据库中

    rake db:test:clone_structure #重新创建测试数据库从开发模式数据库

    [/code]

    [size=large]再其次[/size],一些自己关于自己用。
    通常我们RoR开发的时候,数据库建立都是些migrate文件,然后,提交到版本控制,别人更新和保持数据库的时候,比较容易。只要rake db:migrate就到最新了。需要加载数据库就是fixture。 其实,也没什么体会吧,就一般都这么用。

    [size=large]最后[/size],这还有一篇我的关于数据库操作的说明,或者,也有帮助参考吧

    [url=http://hlee.iteye.com/admin/blogs/380928]rake 对数据库操作深度示例说明[/url]

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题