注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

拥有自己的梦想,跟随心的召唤

平凡是福

 
 
 

日志

 
 

如何从正式环境复制指定流程实例数据到本地开发数据库中  

2015-01-21 14:47:18|  分类: bc |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
(BC内部开发文档资料)
在实际应用中,经常碰到用户反馈某个流程报错,但在本地环境又没有发现问题,导致难以判断产生问题的原因。至此开发此在两个数据库间复制某个流程实例的所有相关数据的功能,方便将正式环境的某个流程实例完整复制到本地进行测试、排错!
如要将正式环境的某个流程实例复制到本地计算机数据库,按如下步骤进行:
1)创建数据库的 DBLINK 扩展(如果已经创建就忽略此步骤)
> psql -d bcsystem -U postgres
postgres=# create extension dblink;

2)执行 bc-workflow\bc-workflow-core\docs\copy_process_instance_data.sql 脚本(如果已经执行过就忽略此步骤)
此脚本将创建一个名为 wf_copy_process_instance 的存储函数

3)复制数据库表中的对应数据
从正式环境获取流程实例的 ID,然后在本地数据库执行如下函数
-- 第一个参数为流程实例的ID,第二个参数为正式环境数据库的只读连接参数
select wf_copy_process_instance('3887597', 'dbname=bcsystem host=192.168.0.7 port=5432 user=reader password=reader');
执行后,该流程实例的所有数据就会复制到本地数据库对应的表中,包括流程部署、流程定义、流程待办经办、流程附件、流程流程变量等等。

4)复制流程附件对应的物理文件
修改测试类 cn.bc.workflow.copy.CopyProcessTest 中 copyInstance 方法中的流程实例 ID 的值,然后执行此方法,正式环境相应此流程实例的附件就会被复制到本地环境的 /bcdata 目录下对应的地方,如下图所示:
如何从正式环境复制指定流程实例数据到本地开发数据库中 - rongjih - 拥有自己的梦想,跟随心的召唤
如果要修改正式环境的数据库连接参数,修改 spring-test-db2.xml 文件中相应的配置即可。

特别注意:如果正式环境相应流程实例数据的 ID 在本地数据库中已经被占用,将会导致复制失败或数据错乱!
  评论这张
 
阅读(374)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017