# 同步测试环境与生产环境

通常项目开发中会涉及到多个环境,一般至少有两个环境:测试环境、生产环境,测试环境用于开发新功能,然后周期性将测试环境开发的功能发布至生产环境,这就涉及到多个环境间元数据的同步与迁移,常用的方案有以下三种:

  • 迁移数据库表:可用数据库工具或者SuccBI的备份恢复,好处是批量文件恢复快,缺点是会全部覆盖。适用于环境初始迁移或很久未用环境的同步。
  • 导入导出:使用SuccBI的元数据导入导出功能,好处是只同步需要的文件,操作简便,缺点也是会覆盖,无法比对差异,再者对于需要同步的文件若分布很零散,操作不便。适用于集中式新增功能模块迁移。
  • SuccIDE同步:使用SuccIDE的同步功能,好处是可查看文件的差异,可选择需要的文件进行同步,缺点是依赖于vscode的使用,有一定难度,另外差异若是太多,同步比较耗时会很长。适用于定期同步升级的场景。

本文将重点介绍如何使用SuccIDE进行同步,下图是一个从开发(测试)环境到生产环境同步的总体流程:

sync-files

# 同步前准备

  1. 安装好SuccIDE,详见SuccIDE安装
  2. 准备好测试环境和开发环境,确保安装SuccIDE的电脑能通过互联网或者VPN等途径正常访问
  3. 使用SuccIDE初始化好一个开发环境,详见SuccIDE界面和配置介绍中的初始化界面介绍

# 开始同步

同步

  1. 连接测试环境生产环境: 只有首次使用需要该步骤,配置服务器相应地址账号,后续再启动只用切换服务器即可,详情见SuccIDE界面和配置介绍SuccBI Servers——服务部分
  2. 切换至测试环境并下载文件: 打开服务视图,点击顶部工具栏切换图标,切换至测试环境(可通过根节点上服务器的名称与url,判断当前所连环境),选择需要同步的扩展项目数据源点击右侧按钮进行下载(需要几个点击几个),注意:如果之前下载过,本地已存在同名文件,会提示是否进行覆盖
  3. 切换至生产环境选择同步: 测试环境文件下载完成后,点击顶部工具栏切换图标,切换至生产环境
  4. 同步比较差异并上传文件: 切换到生产环境后,打开资源视图,选择第2步下载的文件右键选择与服务器同步,此时同步视图会出现所有差异,点击文件可进行比较,确定修改无误后点击上传至开发环境(提示:可以选择比较一个上传一个,也可以全部比较确定完成后点击根节点或目录上传按钮批量上传),注意:若第2步下载的扩展项目数据源有多个,即需要同步的有多个,需要反复进行第4步;同步过程中尽量不要有其他人在环境上进行修改操作,避免相互覆盖

# 测试验证

同步完成后,必须对生产环境进行至少一轮业务流程测试,以此验证功能迁移是否有误。

# 更多技巧

# 如何同步数据表数据

项目开发过程中通常除了元数据文件,一般还会有一部分数据表数据需要同步,例如维表数据。此时就需要用到SuccIDE的数据源同步功能,其将数据以csv形式进行比较传输(注意:与元数据同步一样,数据同步也是直接覆盖的)。

具体配置在package.json中的datasources.include里配置好需要需要同步的数据表(注意:需要在同步前配置,配置好后具体同步步骤同上,请参考同步操作),数组形式,路径规则为:/{数据源名称}/{数据表名称},详细参考SuccIDE界面和配置介绍插件配置说明,示例如下:

{
    //数据源配置文件,用于配置哪些数据表需要下载数据内容
    //文件格式:/{数据源名称}/{数据表名称}
	"datasources.include": [
		"/default/cn_adcode",
		"/succbi/countriesgeo",
		"/succbidw/country",
		"/succbiyw/dw_field_roles"
	]
}

# 如何忽略不需要同步的文件

项目开发过程中一个的项目的元数据文件往往非常多,同步时一般没必要比较整个项目,其耗时长、差异多、难比较。此时就需要用到SuccIDE的项目同步忽略功能,例如下述情况:

  • 测试文件、临时文件、备份文件、系统内置文件不需要同步
  • 开发升级只做了局部改动,不需要同步整个项目,例如:只改了某个app里的文件

具体配置是在package.json中的projects.exclude里配置不需要的元数据文件,数组形式,路径规则同元数据路径,详细参考SuccIDE界面和配置介绍插件配置说明,示例如下:

{
    //同步忽略文件,用于配置忽略不需要同步的文件
    //文件格式:元数据路径即可
	"projects.exclude": [
        "/DEMO/ana",
        "/DEMO/data",
        "/DEMO/fapp",
        "/sysdata/app/default.app",
        "/sysdata/settings/themes"
    ],
}
是否有帮助?
0条评论
评论