提交 d85166d0 编写于 作者: Tyl666's avatar Tyl666

【Liquibase逆向工程】第三版 结构整合

上级 50c9e157
...@@ -3,7 +3,7 @@ package cn.ibizlab.core.extensions.service; ...@@ -3,7 +3,7 @@ package cn.ibizlab.core.extensions.service;
import cn.ibizlab.core.lite.extensions.domain.Setting; import cn.ibizlab.core.lite.extensions.domain.Setting;
import cn.ibizlab.core.lite.extensions.domain.SysModel; import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.lite.extensions.service.LiteCoreService; import cn.ibizlab.core.lite.extensions.service.LiteCoreService;
import cn.ibizlab.core.lite.service.IDstLiquibaseService; import cn.ibizlab.core.lite.service.DstLiquibaseService;
import cn.ibizlab.core.lite.service.impl.DstDataSourceServiceImpl; import cn.ibizlab.core.lite.service.impl.DstDataSourceServiceImpl;
import cn.ibizlab.util.domain.LiquibaseProp; import cn.ibizlab.util.domain.LiquibaseProp;
import cn.ibizlab.util.errors.BadRequestAlertException; import cn.ibizlab.util.errors.BadRequestAlertException;
...@@ -12,7 +12,6 @@ import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; ...@@ -12,7 +12,6 @@ import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator; import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import cn.ibizlab.core.util.config.GenerateLiquibaseChangeLog;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import cn.ibizlab.core.lite.domain.DstDataSource; import cn.ibizlab.core.lite.domain.DstDataSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -45,7 +44,7 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl { ...@@ -45,7 +44,7 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
public LiteCoreService liteCoreService; public LiteCoreService liteCoreService;
@Resource @Resource
public IDstLiquibaseService dstLiquibaseService; public DstLiquibaseService dstLiquibaseService;
/** /**
* [BuildDS:buildDS] 行为扩展 * [BuildDS:buildDS] 行为扩展
...@@ -145,23 +144,27 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl { ...@@ -145,23 +144,27 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
@Override @Override
@Transactional @Transactional
public DstDataSource initDS(DstDataSource et) { public DstDataSource initDS(DstDataSource et) {
DstDataSource ds = get(et.getDsId()); DstDataSource dstDataSource = buildDS(et);
if(ObjectUtils.isEmpty(dstDataSource)){
throw new BadRequestAlertException("数据源不存在,请检查是否填写正确","","ibzInit");
}
DstDataSource ds = get(dstDataSource.getDsId());
String datasourceMessage = ds.getDsCfg(); String datasourceMessage = ds.getDsCfg();
if(ObjectUtils.isEmpty(datasourceMessage)){ if(ObjectUtils.isEmpty(datasourceMessage)){
throw new BadRequestAlertException("数据源不能为空","","ibzInit"); throw new BadRequestAlertException("数据源不能为空","","ibzInit");
} }
Map datasourceMap = parseDatasource(datasourceMessage); Map datasourceMap = parseDatasource(datasourceMessage);
if(ObjectUtils.isEmpty(datasourceMap.get("username"))){ if(ObjectUtils.isEmpty(datasourceMap.get("username"))){
throw new BadRequestAlertException("数据源用户名不能为空","","ibzInit"); throw new BadRequestAlertException("数据源用户名不能为空","","ibzInit");
} }
if(ObjectUtils.isEmpty(datasourceMap.get("password"))){ if(ObjectUtils.isEmpty(datasourceMap.get("password"))){
throw new BadRequestAlertException("数据源密码不能为空","","ibzInit"); throw new BadRequestAlertException("数据源密码不能为空","","ibzInit");
} }
if(ObjectUtils.isEmpty(datasourceMap.get("url"))){ if(ObjectUtils.isEmpty(datasourceMap.get("url"))){
throw new BadRequestAlertException("数据源地址不能为空","","ibzInit"); throw new BadRequestAlertException("数据源地址不能为空","","ibzInit");
} }
if(ObjectUtils.isEmpty(datasourceMap.get("defaultSchema"))){ if(ObjectUtils.isEmpty(datasourceMap.get("defaultSchema"))){
throw new BadRequestAlertException("数据源默认数据库不能为空","","ibzInit"); throw new BadRequestAlertException("数据源默认数据库不能为空","","ibzInit");
} }
LiquibaseProp lp = new LiquibaseProp(); LiquibaseProp lp = new LiquibaseProp();
lp.setUsername(datasourceMap.get("username") == null?"":datasourceMap.get("username").toString()); lp.setUsername(datasourceMap.get("username") == null?"":datasourceMap.get("username").toString());
......
package cn.ibizlab.core.util.config; package cn.ibizlab.core.lite.service;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
...@@ -7,6 +7,7 @@ import cn.hutool.json.XML; ...@@ -7,6 +7,7 @@ import cn.hutool.json.XML;
import cn.ibizlab.core.lite.domain.MetaField; import cn.ibizlab.core.lite.domain.MetaField;
import cn.ibizlab.core.lite.extensions.domain.MetaEntityModel; import cn.ibizlab.core.lite.extensions.domain.MetaEntityModel;
import cn.ibizlab.core.lite.extensions.domain.SysModel; import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.util.config.LiquibaseConfiguration;
import cn.ibizlab.util.domain.LiquibaseProp; import cn.ibizlab.util.domain.LiquibaseProp;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import liquibase.Liquibase; import liquibase.Liquibase;
...@@ -25,9 +26,7 @@ import lombok.SneakyThrows; ...@@ -25,9 +26,7 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseDataSource; import org.springframework.stereotype.Service;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -41,8 +40,9 @@ import java.util.*; ...@@ -41,8 +40,9 @@ import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
@Slf4j @Slf4j
@Configuration @Service("DstLiquibaseService")
public class GenerateLiquibaseChangeLog{ public class DstLiquibaseService{
private boolean ignoreClasspathPrefix = true; private boolean ignoreClasspathPrefix = true;
protected String contexts; protected String contexts;
...@@ -81,6 +81,10 @@ public class GenerateLiquibaseChangeLog{ ...@@ -81,6 +81,10 @@ public class GenerateLiquibaseChangeLog{
@Resource @Resource
public LiquibaseConfiguration liquibaseConfiguration; public LiquibaseConfiguration liquibaseConfiguration;
public SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name) {
SysModel sysModel = liquibaseGenerateChangeLog(liquibaseProp,name);
return sysModel;
}
@SneakyThrows @SneakyThrows
public SysModel liquibaseGenerateChangeLog(LiquibaseProp liquibaseProp,String name){ public SysModel liquibaseGenerateChangeLog(LiquibaseProp liquibaseProp,String name){
// 根据指定数据源生成对象 // 根据指定数据源生成对象
......
package cn.ibizlab.core.lite.service;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.util.domain.LiquibaseProp;
public interface IDstLiquibaseService {
SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name);
}
package cn.ibizlab.core.lite.service.impl;
import cn.ibizlab.core.lite.domain.DstConfig;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.lite.extensions.service.LiteCoreService;
import cn.ibizlab.core.lite.filter.DstConfigSearchContext;
import cn.ibizlab.core.lite.mapper.DstConfigMapper;
import cn.ibizlab.core.lite.service.IDstConfigService;
import cn.ibizlab.core.lite.service.IDstLiquibaseService;
import cn.ibizlab.core.util.config.GenerateLiquibaseChangeLog;
import cn.ibizlab.util.domain.LiquibaseProp;
import cn.ibizlab.util.helper.CachedBeanCopier;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Service("DstLiquibaseServiceImpl")
public class DstLiquibaseServiceImpl extends ServiceImpl<DstConfigMapper, DstConfig> implements IDstLiquibaseService {
@Resource
public GenerateLiquibaseChangeLog generateLiquibaseChangeLog;
@Override
public SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name) {
SysModel sysModel = generateLiquibaseChangeLog.liquibaseGenerateChangeLog(liquibaseProp,name);
return sysModel;
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册