目前客户端工具还是一个以Winform的窗口程序,文件结构如图:
图1
1、两个config的配置文件,分别一个是连接本地开发环境下在数据库,另外一个基本参数配置文件
A、DB.config为数据库连接内容如下:
<DBConfig name="dbtestDBByMP" connectionString="server=(local);database=dbtest;uid=sa;pwd=123456;" providerName="System.Data.SqlClient" />
目前,仅坚持mssql数据库;
B、YBF.AutoDeployManageTool.exe.config 为参数配置,目前仅为ftp相关参数的配置,操作按照服务器端ftp参数加密操作方式一样,内容如下:
<add key="FtpIP" value="81FE139E270645A3AF8D02B856D07FD6" />
<!--ftp登录帐号 正式:localemail-->
<add key="FtpLoginUser" value="A72C6B389570619D3675443B96F8646C" />
<!--ftp登录密码 正式:-->
<add key="FtpLoginPassword" value="D7D02674A2EF7A9F" />
<!--ftp路径-->
<add key="FtpDir" value="F:\\win8file\\Y-BaseFramework.YBF\\YBaseFramework.YBF.UpdateFile\\" />
操作区上分为数据库升级、服务升级、站点升级三个Tab,操作也是按照顺序操作即可,下面就顺序讲解操作与配置相关文件,主界面如图:
图2
2、数据库升级,我们先要配置文件夹conf中的两个XML文件,分别为:
Target.xml 此为升级目标机的分类 目前分为两类一类是测试环境 一类是生产环境 内容如下:
<target key="test-lan" value="上线测试类"></target>
<target key="online-wan" value="生产环境类"></target>
UpdateDBConfig.xml 此为升级数据库目标机的具体服务器的配置,内容如下
<dbconfig key="dbtest" value="dbtest数据库" target="test-lan"
targetServer="127.0.0.1" targetDatabase="dbtest_1" targetUid="sa" targetPwd="123456" targetProviderName="System.Data.SqlClient" uploadlocalpath="F:\\win8file\\Y-BaseFramework.YBF\\YBaseFramework.YBF.Web\\YBaseFramework.YBF.AutoDeployManageTool\\bin\\Debug\\UpdatePack\\{0}.zip"
wcfserviceurl="http://127.0.0.1/Local/LocalService.svc">
<command name="Build">
<![CDATA[
]]>
</command>
</dbconfig>
两个文件中,Target.xml中key的内容为UpdateDBConfig.xml中的target的内容,在UpdateDBConfig.xml中
targetServer 数据库访问地址
targetDatabase 数据库名称
targetUid 帐号
targetPwd 密码
targetProviderName 数据库类型
Uploadlocalpath 上传压缩文件的路径
Wcfserviceurl 目标机上提供的服务器的wcf服务地址
根目录下的UpdatePack的文件夹为升级包所在,DBScript文件夹数据库比较升级脚本,提供压缩所用,升级成功后,会在LastSuccessRunTime.xml的文件中节点dbupdate的value更新,标识下次比较数据库的起始时间点,实际操作如图:
A、操作数据库如图:
图3
B、上次执行的时间点,如图:
图4
C、与目标机数据库比较的结果,如图:
图5
D、比较生成的升级脚本文件,如图:
图6
脚本分别为 字段修改脚本 要在服务器上备份的视图 存储过程 触发器的脚本以防升级失败后回滚所用,创建存储过程脚本 创建触发器脚本 创建视图脚本;
E、点击【一键升级】,进行目标机数据库的升级,如图:
图7
F、查看目标机数据库升级后的情况,如图:
图8
图9
图10
到此,测试环境下的目标数据库已经升级成功,目前还没支持升级成功后数据测试和升级失败后的回滚操作,后续会进行相关功能的开发。
后续 服务的升级操作