Liquibase 如何从Java应用变更日志中获取前提条件?

Liquibase 如何从Java应用变更日志中获取前提条件?,liquibase,Liquibase,我试图使用先决条件跳过CreateTable变更集,并在表存在时标记_RAN。当Liquibase在MYSQL(AWS Aurora)中创建现有表时记录表存在错误时,前提条件似乎被忽略 错误: Response: {"errorMessage":"Failed to connect to Liquibase due to Migration failed for change set db.changelog-1.1.xml::1231::xxx:\n R

我试图使用先决条件跳过CreateTable变更集,并在表存在时标记_RAN。当Liquibase在MYSQL(AWS Aurora)中创建现有表时记录表存在错误时,前提条件似乎被忽略

错误:


Response: {"errorMessage":"Failed to connect to Liquibase due to Migration failed for change set db.changelog-1.1.xml::1231::xxx:\n     Reason: liquibase.exception.DatabaseException: Table 'tenant' already exists [Failed SQL: CREATE TABLE xxx_global.tenant (tenantId INT AUTO_INCREMENT NOT NULL, region VARCHAR(255) NULL, tenantName VARCHAR(255) NULL, CONSTRAINT PK_TENANT PRIMARY KEY (tenantId))]"}

我唯一的另一个想法是尝试在CreateTable变更集上使用自定义上下文进行清洁安装

我发现了这个问题,而不是Liquibase问题。包含用于调用Liquibase的Lambda代码的AWS堆栈未更新。我删除并重新创建了堆栈,它开始工作。

我发现了问题,它不是液化问题。包含用于调用Liquibase的Lambda代码的AWS堆栈未更新。我删除并重新创建了堆栈,它开始工作。

指定上下文无效,指定上下文也无效
            final Database dataBase = DatabaseFactory.getInstance()
                    .findCorrectDatabaseImplementation(new JdbcConnection(connection));
            final Liquibase liquiBase = new liquibase.Liquibase(CHANGE_LOG_FILE, RESOURCE_ACCESSOR, dataBase);
            liquiBase.update(CONTEXTS, LABEL_EXPRESSION);


Response: {"errorMessage":"Failed to connect to Liquibase due to Migration failed for change set db.changelog-1.1.xml::1231::xxx:\n     Reason: liquibase.exception.DatabaseException: Table 'tenant' already exists [Failed SQL: CREATE TABLE xxx_global.tenant (tenantId INT AUTO_INCREMENT NOT NULL, region VARCHAR(255) NULL, tenantName VARCHAR(255) NULL, CONSTRAINT PK_TENANT PRIMARY KEY (tenantId))]"}