Ruby on rails 从生产日志中恢复Redmine数据
我在Redmine有一个超过600期的项目。我将所有问题转移到另一个项目。我不知道移动会删除自定义字段的所有数据 因此,所有自定义字段值现在都将丢失。在执行此操作之前,我没有备份数据库,因为我真的不认为移动问题会造成任何伤害,因为移动是UI中的本机功能 我注意到production.log包含所有创建和更新的事件。我的600个问题在生产日志中都是有序的。如何使用这些日志语句重复操作?如果我可以导入所有日志操作,我就可以迁移它写入原始Redmine实例的自定义字段并恢复我的值 条目如下所示:Ruby on rails 从生产日志中恢复Redmine数据,ruby-on-rails,ruby,logging,redmine,Ruby On Rails,Ruby,Logging,Redmine,我在Redmine有一个超过600期的项目。我将所有问题转移到另一个项目。我不知道移动会删除自定义字段的所有数据 因此,所有自定义字段值现在都将丢失。在执行此操作之前,我没有备份数据库,因为我真的不认为移动问题会造成任何伤害,因为移动是UI中的本机功能 我注意到production.log包含所有创建和更新的事件。我的600个问题在生产日志中都是有序的。如何使用这些日志语句重复操作?如果我可以导入所有日志操作,我就可以迁移它写入原始Redmine实例的自定义字段并恢复我的值 条目如下所示: Pr
Processing IssuesController#update (for XX.XX.XX.X at 2013-02-07 11:19:54) [PUT]
Parameters: {"_method"=>"put", "authenticity_token"=>"nWNSSRYjHhN0BGb+Ya8M4pYWPPgsfdM=", "issue"=>{"assigned_to_id"=>"", "custom_field_values"=>{"10"=>"", "5"=>"Not translated", "1"=>"fi", "8"=>"http://screencast.com/t/ODknR8K", "9"=>"", "3"=>"", "4"=>""}, "done_ratio"=>"0", "due_date"=>"", "priority_id"=>"4", "estimated_hours"=>"", "start_date"=>"2013-02-07", "subject"=>"1\tInstallation in English", "tracker_id"=>"1", "lock_version"=>"0", "description"=>"Steps:\r\nOpen Nitro\r\n\r\nProblem:\r\nNot localized"}, "controller"=>"issues", "time_entry"=>{"hours"=>"", "activity_id"=>"", "comments"=>""}, "attachments"=>{"1"=>{"description"=>""}}, "id"=>"3876", "action"=>"update", "commit"=>"Submit", "notes"=>""}
我真的希望有一种方法,任何帮助都将受到极大的感谢您可以使用一个像样的文本编辑器和/或电子表格应用程序,进行大量的查找和替换,构造一系列更新SQL命令,并直接在数据库上运行它们(先测试!!)
- 从日志中提取
- 删除不必要的信息
- 复制到电子表格中
- 将文本拆分为列
- 使用必要的SQL命令“更新集等”将外接程序列复制到此列等的所有行中
- 联接列以每行生成一个文本命令
- 将关联数据导出到文本文件
- 以sql形式运行测试数据库
- 如果一切顺利,则以sql形式运行生产数据库
eval
将其返回到散列变量中
从那里,您需要剥离元素并将其插入数据库。我会用Sequel,但用适合你的
与RedMine支持人员交谈,获取他们的表的模式,这样您就可以了解数据的去向以及数据库驱动程序的需要 你有没有和他们的支持者谈过,听听他们的想法?这将是第一件要尝试的事情。这不是最简单的任务,但我也做过类似的事情。编写了一个pearl脚本,并首先将其转换为csv,在这里我必须手动清理地图项目。然后使用另一个pearl脚本将数据转换为insert语句。。。