|
@@ -90,7 +90,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
/**
|
|
|
* init schema
|
|
|
*/
|
|
|
- public void initSchema(){
|
|
|
+ public void initSchema() {
|
|
|
DbType dbType = getDbType();
|
|
|
String initSqlPath = "";
|
|
|
if (dbType != null) {
|
|
@@ -113,6 +113,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* init scheam
|
|
|
+ *
|
|
|
* @param initSqlPath initSqlPath
|
|
|
*/
|
|
|
public void initSchema(String initSqlPath) {
|
|
@@ -128,6 +129,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* run DML
|
|
|
+ *
|
|
|
* @param initSqlPath initSqlPath
|
|
|
*/
|
|
|
private void runInitDML(String initSqlPath) {
|
|
@@ -150,20 +152,20 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
try {
|
|
|
conn.rollback();
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (Exception e) {
|
|
|
try {
|
|
|
if (null != conn) {
|
|
|
conn.rollback();
|
|
|
}
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(conn);
|
|
|
|
|
@@ -173,6 +175,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* run DDL
|
|
|
+ *
|
|
|
* @param initSqlPath initSqlPath
|
|
|
*/
|
|
|
private void runInitDDL(String initSqlPath) {
|
|
@@ -191,12 +194,12 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(conn);
|
|
|
|
|
@@ -206,6 +209,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* determines whether a table exists
|
|
|
+ *
|
|
|
* @param tableName tableName
|
|
|
* @return if table exist return true,else return false
|
|
|
*/
|
|
@@ -213,20 +217,22 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* determines whether a field exists in the specified table
|
|
|
- * @param tableName tableName
|
|
|
+ *
|
|
|
+ * @param tableName tableName
|
|
|
* @param columnName columnName
|
|
|
- * @return if column name exist return true,else return false
|
|
|
+ * @return if column name exist return true,else return false
|
|
|
*/
|
|
|
- public abstract boolean isExistsColumn(String tableName,String columnName);
|
|
|
+ public abstract boolean isExistsColumn(String tableName, String columnName);
|
|
|
|
|
|
|
|
|
/**
|
|
|
* get current version
|
|
|
+ *
|
|
|
* @param versionName versionName
|
|
|
* @return version
|
|
|
*/
|
|
|
public String getCurrentVersion(String versionName) {
|
|
|
- String sql = String.format("select version from %s",versionName);
|
|
|
+ String sql = String.format("select version from %s", versionName);
|
|
|
Connection conn = null;
|
|
|
ResultSet rs = null;
|
|
|
PreparedStatement pstmt = null;
|
|
@@ -243,7 +249,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
return version;
|
|
|
|
|
|
} catch (SQLException e) {
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
throw new RuntimeException("sql: " + sql, e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(rs, pstmt, conn);
|
|
@@ -253,6 +259,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* upgrade DolphinScheduler
|
|
|
+ *
|
|
|
* @param schemaDir schema dir
|
|
|
*/
|
|
|
public void upgradeDolphinScheduler(String schemaDir) {
|
|
@@ -282,109 +289,109 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
/**
|
|
|
* updateProcessDefinitionJsonWorkerGroup
|
|
|
*/
|
|
|
- protected void updateProcessDefinitionJsonWorkerGroup(){
|
|
|
+ protected void updateProcessDefinitionJsonWorkerGroup() {
|
|
|
WorkerGroupDao workerGroupDao = new WorkerGroupDao();
|
|
|
ProcessDefinitionDao processDefinitionDao = new ProcessDefinitionDao();
|
|
|
- Map<Integer,String> replaceProcessDefinitionMap = new HashMap<>();
|
|
|
+ Map<Integer, String> replaceProcessDefinitionMap = new HashMap<>();
|
|
|
try {
|
|
|
Map<Integer, String> oldWorkerGroupMap = workerGroupDao.queryAllOldWorkerGroup(dataSource.getConnection());
|
|
|
- Map<Integer,String> processDefinitionJsonMap = processDefinitionDao.queryAllProcessDefinition(dataSource.getConnection());
|
|
|
+ Map<Integer, String> processDefinitionJsonMap = processDefinitionDao.queryAllProcessDefinition(dataSource.getConnection());
|
|
|
|
|
|
- for (Map.Entry<Integer,String> entry : processDefinitionJsonMap.entrySet()){
|
|
|
+ for (Map.Entry<Integer, String> entry : processDefinitionJsonMap.entrySet()) {
|
|
|
ObjectNode jsonObject = JSONUtils.parseObject(entry.getValue());
|
|
|
ArrayNode tasks = JSONUtils.parseArray(jsonObject.get("tasks").toString());
|
|
|
|
|
|
- for (int i = 0 ;i < tasks.size() ; i++){
|
|
|
+ for (int i = 0; i < tasks.size(); i++) {
|
|
|
ObjectNode task = (ObjectNode) tasks.path(i);
|
|
|
ObjectNode workerGroupNode = (ObjectNode) task.path("workerGroupId");
|
|
|
Integer workerGroupId = -1;
|
|
|
- if(workerGroupNode != null && workerGroupNode.canConvertToInt()){
|
|
|
+ if (workerGroupNode != null && workerGroupNode.canConvertToInt()) {
|
|
|
workerGroupId = workerGroupNode.asInt(-1);
|
|
|
}
|
|
|
if (workerGroupId == -1) {
|
|
|
task.put("workerGroup", "default");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
task.put("workerGroup", oldWorkerGroupMap.get(workerGroupId));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
jsonObject.remove("task");
|
|
|
|
|
|
- jsonObject.put("tasks",tasks);
|
|
|
+ jsonObject.put("tasks", tasks);
|
|
|
|
|
|
- replaceProcessDefinitionMap.put(entry.getKey(),jsonObject.toString());
|
|
|
+ replaceProcessDefinitionMap.put(entry.getKey(), jsonObject.toString());
|
|
|
}
|
|
|
- if (replaceProcessDefinitionMap.size() > 0){
|
|
|
- processDefinitionDao.updateProcessDefinitionJson(dataSource.getConnection(),replaceProcessDefinitionMap);
|
|
|
+ if (replaceProcessDefinitionMap.size() > 0) {
|
|
|
+ processDefinitionDao.updateProcessDefinitionJson(dataSource.getConnection(), replaceProcessDefinitionMap);
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- logger.error("update process definition json workergroup error",e);
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("update process definition json workergroup error", e);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* updateProcessDefinitionJsonResourceList
|
|
|
*/
|
|
|
- protected void updateProcessDefinitionJsonResourceList(){
|
|
|
+ protected void updateProcessDefinitionJsonResourceList() {
|
|
|
ResourceDao resourceDao = new ResourceDao();
|
|
|
ProcessDefinitionDao processDefinitionDao = new ProcessDefinitionDao();
|
|
|
- Map<Integer,String> replaceProcessDefinitionMap = new HashMap<>();
|
|
|
+ Map<Integer, String> replaceProcessDefinitionMap = new HashMap<>();
|
|
|
try {
|
|
|
- Map<String,Integer> resourcesMap = resourceDao.listAllResources(dataSource.getConnection());
|
|
|
- Map<Integer,String> processDefinitionJsonMap = processDefinitionDao.queryAllProcessDefinition(dataSource.getConnection());
|
|
|
+ Map<String, Integer> resourcesMap = resourceDao.listAllResources(dataSource.getConnection());
|
|
|
+ Map<Integer, String> processDefinitionJsonMap = processDefinitionDao.queryAllProcessDefinition(dataSource.getConnection());
|
|
|
|
|
|
- for (Map.Entry<Integer,String> entry : processDefinitionJsonMap.entrySet()){
|
|
|
+ for (Map.Entry<Integer, String> entry : processDefinitionJsonMap.entrySet()) {
|
|
|
ObjectNode jsonObject = JSONUtils.parseObject(entry.getValue());
|
|
|
ArrayNode tasks = JSONUtils.parseArray(jsonObject.get("tasks").toString());
|
|
|
|
|
|
- for (int i = 0 ;i < tasks.size() ; i++){
|
|
|
+ for (int i = 0; i < tasks.size(); i++) {
|
|
|
ObjectNode task = (ObjectNode) tasks.get(i);
|
|
|
- ObjectNode param = (ObjectNode)task.get("params");
|
|
|
+ ObjectNode param = (ObjectNode) task.get("params");
|
|
|
if (param != null) {
|
|
|
|
|
|
List<ResourceInfo> resourceList = JSONUtils.toList(param.get("resourceList").toString(), ResourceInfo.class);
|
|
|
ResourceInfo mainJar = JSONUtils.parseObject(param.get("mainJar").toString(), ResourceInfo.class);
|
|
|
if (mainJar != null && mainJar.getId() == 0) {
|
|
|
- String fullName = mainJar.getRes().startsWith("/") ? mainJar.getRes() : String.format("/%s",mainJar.getRes());
|
|
|
+ String fullName = mainJar.getRes().startsWith("/") ? mainJar.getRes() : String.format("/%s", mainJar.getRes());
|
|
|
if (resourcesMap.containsKey(fullName)) {
|
|
|
mainJar.setId(resourcesMap.get(fullName));
|
|
|
- param.put("mainJar",JSONUtils.parseObject(JSONUtils.toJsonString(mainJar)));
|
|
|
+ param.put("mainJar", JSONUtils.parseObject(JSONUtils.toJsonString(mainJar)));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(resourceList)) {
|
|
|
List<ResourceInfo> newResourceList = resourceList.stream().map(resInfo -> {
|
|
|
- String fullName = resInfo.getRes().startsWith("/") ? resInfo.getRes() : String.format("/%s",resInfo.getRes());
|
|
|
+ String fullName = resInfo.getRes().startsWith("/") ? resInfo.getRes() : String.format("/%s", resInfo.getRes());
|
|
|
if (resInfo.getId() == 0 && resourcesMap.containsKey(fullName)) {
|
|
|
resInfo.setId(resourcesMap.get(fullName));
|
|
|
}
|
|
|
return resInfo;
|
|
|
}).collect(Collectors.toList());
|
|
|
- param.put("resourceList",JSONUtils.parseObject(JSONUtils.toJsonString(newResourceList)));
|
|
|
+ param.put("resourceList", JSONUtils.parseObject(JSONUtils.toJsonString(newResourceList)));
|
|
|
}
|
|
|
}
|
|
|
- task.put("params",param);
|
|
|
+ task.put("params", param);
|
|
|
|
|
|
}
|
|
|
|
|
|
jsonObject.remove("tasks");
|
|
|
|
|
|
- jsonObject.put("tasks",tasks);
|
|
|
+ jsonObject.put("tasks", tasks);
|
|
|
|
|
|
- replaceProcessDefinitionMap.put(entry.getKey(),jsonObject.toString());
|
|
|
+ replaceProcessDefinitionMap.put(entry.getKey(), jsonObject.toString());
|
|
|
}
|
|
|
- if (replaceProcessDefinitionMap.size() > 0){
|
|
|
- processDefinitionDao.updateProcessDefinitionJson(dataSource.getConnection(),replaceProcessDefinitionMap);
|
|
|
+ if (replaceProcessDefinitionMap.size() > 0) {
|
|
|
+ processDefinitionDao.updateProcessDefinitionJson(dataSource.getConnection(), replaceProcessDefinitionMap);
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- logger.error("update process definition json resource list error",e);
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("update process definition json resource list error", e);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* upgradeDolphinScheduler DML
|
|
|
+ *
|
|
|
* @param schemaDir schemaDir
|
|
|
*/
|
|
|
private void upgradeDolphinSchedulerDML(String schemaDir) {
|
|
@@ -392,8 +399,8 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
if (StringUtils.isEmpty(rootDir)) {
|
|
|
throw new RuntimeException("Environment variable user.dir not found");
|
|
|
}
|
|
|
- String sqlFilePath = MessageFormat.format("{0}/sql/upgrade/{1}/{2}/dolphinscheduler_dml.sql",rootDir,schemaDir,getDbType().name().toLowerCase());
|
|
|
- logger.info("sqlSQLFilePath"+sqlFilePath);
|
|
|
+ String sqlFilePath = MessageFormat.format("{0}/sql/upgrade/{1}/{2}/dolphinscheduler_dml.sql", rootDir, schemaDir, getDbType().name().toLowerCase());
|
|
|
+ logger.info("sqlSQLFilePath" + sqlFilePath);
|
|
|
Connection conn = null;
|
|
|
PreparedStatement pstmt = null;
|
|
|
try {
|
|
@@ -405,13 +412,13 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
scriptRunner.runScript(sqlReader);
|
|
|
if (isExistsTable(T_VERSION_NAME)) {
|
|
|
// Change version in the version table to the new version
|
|
|
- String upgradeSQL = String.format("update %s set version = ?",T_VERSION_NAME);
|
|
|
+ String upgradeSQL = String.format("update %s set version = ?", T_VERSION_NAME);
|
|
|
pstmt = conn.prepareStatement(upgradeSQL);
|
|
|
pstmt.setString(1, schemaVersion);
|
|
|
pstmt.executeUpdate();
|
|
|
- }else if (isExistsTable(T_NEW_VERSION_NAME)) {
|
|
|
+ } else if (isExistsTable(T_NEW_VERSION_NAME)) {
|
|
|
// Change version in the version table to the new version
|
|
|
- String upgradeSQL = String.format("update %s set version = ?",T_NEW_VERSION_NAME);
|
|
|
+ String upgradeSQL = String.format("update %s set version = ?", T_NEW_VERSION_NAME);
|
|
|
pstmt = conn.prepareStatement(upgradeSQL);
|
|
|
pstmt.setString(1, schemaVersion);
|
|
|
pstmt.executeUpdate();
|
|
@@ -421,38 +428,38 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
try {
|
|
|
conn.rollback();
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
throw new RuntimeException("sql file not found ", e);
|
|
|
} catch (IOException e) {
|
|
|
try {
|
|
|
conn.rollback();
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (SQLException e) {
|
|
|
try {
|
|
|
if (null != conn) {
|
|
|
conn.rollback();
|
|
|
}
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (Exception e) {
|
|
|
try {
|
|
|
if (null != conn) {
|
|
|
conn.rollback();
|
|
|
}
|
|
|
} catch (SQLException e1) {
|
|
|
- logger.error(e1.getMessage(),e1);
|
|
|
+ logger.error(e1.getMessage(), e1);
|
|
|
}
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(pstmt, conn);
|
|
|
}
|
|
@@ -461,13 +468,14 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* upgradeDolphinScheduler DDL
|
|
|
+ *
|
|
|
* @param schemaDir schemaDir
|
|
|
*/
|
|
|
private void upgradeDolphinSchedulerDDL(String schemaDir) {
|
|
|
if (StringUtils.isEmpty(rootDir)) {
|
|
|
throw new RuntimeException("Environment variable user.dir not found");
|
|
|
}
|
|
|
- String sqlFilePath = MessageFormat.format("{0}/sql/upgrade/{1}/{2}/dolphinscheduler_ddl.sql",rootDir,schemaDir,getDbType().name().toLowerCase());
|
|
|
+ String sqlFilePath = MessageFormat.format("{0}/sql/upgrade/{1}/{2}/dolphinscheduler_ddl.sql", rootDir, schemaDir, getDbType().name().toLowerCase());
|
|
|
Connection conn = null;
|
|
|
PreparedStatement pstmt = null;
|
|
|
try {
|
|
@@ -482,20 +490,20 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
throw new RuntimeException("sql file not found ", e);
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (SQLException e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
- throw new RuntimeException(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e.getMessage(), e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(pstmt, conn);
|
|
|
}
|
|
@@ -505,15 +513,16 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
|
|
|
/**
|
|
|
* update version
|
|
|
+ *
|
|
|
* @param version version
|
|
|
*/
|
|
|
public void updateVersion(String version) {
|
|
|
// Change version in the version table to the new version
|
|
|
String versionName = T_VERSION_NAME;
|
|
|
- if(!SchemaUtils.isAGreatVersion("1.2.0" , version)){
|
|
|
+ if (!SchemaUtils.isAGreatVersion("1.2.0", version)) {
|
|
|
versionName = "t_ds_version";
|
|
|
}
|
|
|
- String upgradeSQL = String.format("update %s set version = ?",versionName);
|
|
|
+ String upgradeSQL = String.format("update %s set version = ?", versionName);
|
|
|
PreparedStatement pstmt = null;
|
|
|
Connection conn = null;
|
|
|
try {
|
|
@@ -523,7 +532,7 @@ public abstract class UpgradeDao extends AbstractBaseDao {
|
|
|
pstmt.executeUpdate();
|
|
|
|
|
|
} catch (SQLException e) {
|
|
|
- logger.error(e.getMessage(),e);
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
throw new RuntimeException("sql: " + upgradeSQL, e);
|
|
|
} finally {
|
|
|
ConnectionUtils.releaseResource(pstmt, conn);
|