/* * 文件名称: UpgradeSupport.java * 版权信息: Copyright 2013-2014 chunchen technology Co., LTD. All right reserved. * ---------------------------------------------------------------------------------------------- * 修改历史: * ---------------------------------------------------------------------------------------------- * 修改原因: 新增 * 修改人员: zhangyz * 修改日期: 2014-6-6 * 修改内容: */ package com.mfh.comn.upgrade; import java.io.InputStream; import java.util.List; /** * * @author zhangyz created on 2014-6-6 */ public interface UpgradeSupport { String tableVersionName = "T_COM_VERSION"; /** * 获取当前升降库的数据库类型 * @return * @author zhangyz created on 2014-6-6 */ String getDsType(); /** * 初始化,升级工作支持提交和回退。故此次应初始化为手工提交。后面执行commit方法时进行。 * @param dsId 数据源标识 * @throws Exception */ void init(String dsId) throws Exception; /** * 获取指定相对路径的升级脚本文件的文件流 * @param scriptRelativePath * @return * @author zhangyz created on 2014-6-7 */ InputStream getUpgradeSqlScriptsStream(String scriptRelativePath); /** * 判断版本表T_COM_VERSION是否存在 * @return */ boolean existTable(); /** * 创建版本表 * @throws Exception * @author zhangyz created on 2014-6-6 */ void createVersionTable() throws Exception; /** * 执行具体的数据库升级工作 * @param sqls sql语句列表,内部应批量执行 * @author zhangyz created on 2014-6-6 */ void upgradeVersion(List<String> sqls) throws Exception; /** * 提交升级工作 * * @author zhangyz created on 2014-6-6 */ void commit(); /** * 回退升级工作 * * @author zhangyz created on 2014-6-6 */ void rollback(); /** * 升级后的清理工作 */ void close(); /** * 查询指定表的当前版本信息 * @param tableDomain 表名 * @return */ VersionInfo queryVersion(String tableDomain); /** * 修改表的版本信息 * @param versionInfo */ void updateVersion(VersionInfo versionInfo); /** * 新增一个表的版本信息 * @param versionInfo * @author zhangyz created on 2014-6-6 */ void saveVersion(VersionInfo versionInfo); }