update - 增加数据库脚本升级逻辑控制

This commit is contained in:
wangli 2024-07-16 09:58:25 +08:00
parent 2bebe80382
commit 250dd40831
3 changed files with 36 additions and 9 deletions

View File

@ -64,7 +64,7 @@ public class FlowableConfiguration {
configuration.setJobProcessors(jobProcessors);
configuration.setEventListeners(Lists.newArrayList(listeners));
configuration.setActivityBehaviorFactory(customActivityBehaviorFactory);
configuration.setDatabaseSchemaUpdate(DB_SCHEMA_UPDATE_TRUE);
// configuration.setDatabaseSchemaUpdate(DB_SCHEMA_UPDATE_TRUE);
configuration.setEnableSafeBpmnXml(false);
// configuration.setCreateDiagramOnDeploy(false);
// configuration.setIdGenerator(new TimeBasedIdGenerator());

View File

@ -1,9 +1,9 @@
package cn.axzo.workflow.server.initializer;
import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
@ -33,20 +33,34 @@ import static org.flowable.common.engine.impl.AbstractEngineConfiguration.DB_SCH
*/
@Component
@Slf4j
@AllArgsConstructor
public class ExtDatabaseInitializer implements ApplicationRunner {
@Value("${workflow.dbAutoUpdate:true}")
private Boolean dbAutoUpdate;
private static final String FILE_PREFIX = "ext_ax_";
private final JdbcTemplate jdbcTemplate;
private final ResourceLoader resourceLoader;
private final ApplicationContext applicationContext;
private ResourcePatternResolver resourcePatternResolver;
private final ResourcePatternResolver resourcePatternResolver;
public ExtDatabaseInitializer(JdbcTemplate jdbcTemplate,
ResourceLoader resourceLoader,
ApplicationContext applicationContext,
ResourcePatternResolver resourcePatternResolver) {
this.jdbcTemplate = jdbcTemplate;
this.resourceLoader = resourceLoader;
this.applicationContext = applicationContext;
this.resourcePatternResolver = resourcePatternResolver;
}
@Override
public void run(ApplicationArguments args) throws Exception {
SpringProcessEngineConfiguration springProcessEngineConfiguration =
(SpringProcessEngineConfiguration) applicationContext.getBean("springProcessEngineConfiguration");
if (Objects.equals(DB_SCHEMA_UPDATE_FALSE, springProcessEngineConfiguration.getDatabaseSchemaUpdate())) {
return;
if (!dbAutoUpdate) {
return;
}
}
List<String> tables = selectExtTables();

View File

@ -1,10 +1,10 @@
package cn.axzo.workflow.server.initializer;
import cn.azxo.framework.common.utils.LogUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
@ -35,21 +35,34 @@ import static org.flowable.common.engine.impl.AbstractEngineConfiguration.DB_SCH
*/
@Component
@Slf4j
@AllArgsConstructor
public class VersionUpgradeInitializer implements ApplicationRunner {
@Value("${workflow.dbAutoUpdate:true}")
private Boolean dbAutoUpdate;
private static final String FILE_PREFIX = "upgrade_to_";
private static final String COLUMN_NAME = "workflow.engine.version";
private final JdbcTemplate jdbcTemplate;
private final ResourceLoader resourceLoader;
private final ApplicationContext applicationContext;
private ResourcePatternResolver resourcePatternResolver;
private final ResourcePatternResolver resourcePatternResolver;
public VersionUpgradeInitializer(JdbcTemplate jdbcTemplate,
ResourceLoader resourceLoader,
ApplicationContext applicationContext,
ResourcePatternResolver resourcePatternResolver) {
this.jdbcTemplate = jdbcTemplate;
this.resourceLoader = resourceLoader;
this.applicationContext = applicationContext;
this.resourcePatternResolver = resourcePatternResolver;
}
@Override
public void run(ApplicationArguments args) throws Exception {
SpringProcessEngineConfiguration springProcessEngineConfiguration =
(SpringProcessEngineConfiguration) applicationContext.getBean("springProcessEngineConfiguration");
if (Objects.equals(DB_SCHEMA_UPDATE_FALSE, springProcessEngineConfiguration.getDatabaseSchemaUpdate())) {
return;
if (!dbAutoUpdate) {
return;
}
}
DefaultArtifactVersion dbVersion = new DefaultArtifactVersion(selectWorkflowEngineVersion());