在rails中我认为迁移任务就是用rails来对数据库进行操作,可是我现在对迁移任务的回滚还是不太熟练,希望大家能给提点建议或经验~~~
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
weixin_42310078
2009-05-21 14:49Rails中迁移任务的回滚
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
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]
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
报告相同问题?
相关推荐 更多相似问题
- 2009-05-21 14:49回答 2 已采纳 虽然,不是确切的知道你想要的是什么,我就猜测的给你一些,我认为相关的我有用的东西吧。 [size=large]首先[/size],你提到迁移和数据库回滚 那么,我认为你是 [code="
- 2009-03-17 00:44回答 3 已采纳 原来的ApplicationController保存于application.rb 在2.3,这个文件要改名为application_controller.rb 这个改动的原因是使名字和内
- 2015-06-27 00:12回答 1 已采纳 Sure, you can do this in Rails. First, you need to define the route for your request. Write the fo
- 2018-05-09 00:13SeekChance的博客 rake db:rollback STEP=1 Is a way to do this, if the migration you want to rollback is the last one applied. You can substitute 1 for however many migrations you want to go back. ...
- 2021-02-08 01:04weixin_39982236的博客 如何回滚失败的rails迁移? 我希望rake db:rollback可以撤消失败的迁移,但不会,它会回滚先前的迁移(失败的迁移减去1)。 并且rake db:migrate:down VERSION=myfailedmigration也不起作用。 我已经碰到了几次,这...
- 2016-06-17 16:03weixin_30685047的博客 1 通常迁移内容写在change方法中 ,但是有些迁移内容不能自动通过执行rake:rollback回滚, 所以在迁移文件里要使用 reversible 方法,告诉rails如何回滚例如下面 # coding: utf-8 class ExampleMigration < ...
- 2011-12-13 21:33回答 1 已采纳 虽然不知道你为什么一定要转回来,不过这个方法可以帮你: [code="ruby"]URI.unescape("http%253A%252F%252F202.114.114.71%253A8080%2
- 2008-06-23 12:17回答 2 已采纳 如果定时任务不是程序动态创建出来的话,那么直接用Linux的cron就可以了,访问数据库的那些操作用SQL直接写好,放在shell脚本里面,然后在cron里面配置定期执行就OK了。 如果定时任务
- 2011-09-05 13:54回答 4 已采纳 [code="ruby"] respond_to do |format| format.json{ render :inline => @users.to_json }
- 2019-12-21 15:38p15097962069的博客 我有以下迁移文件db\\migrate\\20100905201547_create_blocks.rb 如何专门回滚该迁移文件?
- 2019-01-04 12:01zhang_fa_hui的博客 Active Record 知道如何沿着时间线更新数据库模式,使其从任何历史...迁移文件储存在 db/migrate 文件夹中,一个迁移文件包含一个迁移类。文件名采用 YYYYMMDDHHMMSS_create_products.rb 形式,即 UTC 时间戳加...
- 2016-01-22 10:49tomhat的博客 这个命令会回滚上一次迁移,撤销 change 方法中的操作,或者执行 down 方法。如果想撤销多个迁移,可以使用 STEP 参数: rake db:rollback STEP=3 这个命令会撤销前三次迁移。 db:migrate:redo 命令可以回滚上一次...
- 2018-05-25 00:08回答 1 已采纳 You can use the Kernel#exec function to call another scripts in the SO. Example: exec( "php /foo
- 2017-09-20 15:56回答 1 已采纳 http://blog.csdn.net/libin56842/article/details/9409171
- 2010-02-08 14:55回答 3 已采纳 那也得看你的执行的生成命令啊 你怎么样问问题,还要别人启发你啊。
- 2017-04-05 17:36大东爱宝宝的博客 安装gem gem install activerecord require 'active_record' Migrations作用 采用Ruby DSL的方式来管理数据库的设计模式 通用RDB模式管理,方便在不同数据库之前使用 ...rails g model rails g migration rake db:mig
- 2019-12-08 15:38p15097962069的博客 我错误地将列命名为hased_password而不是hashed_password 。 如何使用迁移重命名此列来更新数据库架构?
- 2017-02-09 11:02qq_29738785的博客 rails generate controller 控制器名称 控制器方法1 控制器方法2 ……控制器方法n //生成控制器操作 rails destroy controller 控制器名称 控制器方法1 控制器方法2 ……控制器方法n //销毁控制器操作 rails ...
- 2009-05-18 11:25回答 1 已采纳 [url=http://github.com/akitaonrails/active_merchant/tree/master]active_merchant[/url] 这个是通用的rails
- 2012-06-24 12:47杠杠PP的博客 Rails 数据库迁移(Migrations) 数据库迁移(Migrations)提供了一些便利的方法让你有条理地修改数据库。虽然说直接 编写SQL也能修改数据库,但是这样你不但必须通知其他的开发者去执行一样的步骤,而且你 也得...
- 没有解决我的问题, 去提问