liquibase 忽略已执行的更改集

加德内布拉姆

我正在尝试使用现有数据库(在 MySQL 上)中的 liquibase (3.5.5)。

  1. 我使用 generateChangeLog 命令生成了一个 db.changelog.xml 文件。

    C:/liquibase-3.5.5/liquibase.bat --driver=com.mysql.jdbc.Driver ^ --classpath=C:/Libraries/mysql-connector-java-5.1.37-bin.jar ^ --changeLogFile =db.changelog.xml ^ --url="jdbc:mysql://vbalder/izalerting" ^ --username= * ^ --password=* ^ generateChangeLog

结果: Liquibase 'generateChangeLog' Successful

生成的 db.changelog.xml 文件包含带有作者BGADEYNE (generated)和 id 的更改集,这些更改集1533645947580-. 例如1533645947580-1

  1. 添加logicalFilePath="db.changelog.xml"到 databaseChangeLog 标签
  2. 我已经使用 changelogSync 命令来创建和填充 DATABASECHANGELOG 和 DATABASECHANGELOGLOCK 表。它们确实包含每个变更集的行。

    C:/liquibase-3.5.5/liquibase --driver=com.mysql.jdbc.Driver ^ --classpath=C:/Libraries/mysql-connector-java-5.1.37-bin.jar ^ --changeLogFile=db .changelog.xml ^ --url="jdbc:mysql://vbalder/izalerting" ^ --username=izalerting ^ --password=alfa ^ changelogSync

结果: Liquibase 'changelogSync' Successful

  1. 创建了一个 CDI 组件以在应用程序启动时执行 db.changelog.xml。

添加了 Maven 依赖项:

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-cdi</artifactId>
    <version>3.5.5</version>
</dependency>

添加了 CLI 组件:

@Dependent
public class LiquibaseProducer {
    @Resource(name="java:/izalerting")
    private DataSource dbConnection;

    @Produces @LiquibaseType
    public CDILiquibaseConfig createConfig() {
        CDILiquibaseConfig config = new CDILiquibaseConfig();
        config.setChangeLog("be/uzgent/iz/alerting/liquibase/db.changelog.xml");
        config.setContexts("non-legacy");
        return config;
    }

    @Produces @LiquibaseType
    public DataSource createDataSource() throws SQLException {
        return dbConnection;
    }

    @Produces @LiquibaseType
    public ResourceAccessor create() {
        return new ClassLoaderResourceAccessor(getClass().getClassLoader());
    }
}
  1. 将应用程序部署到 WildFly 时,我可以看到这一点

    2018-08-07 15:07:09,234 错误 [stderr](MSC 服务线程 1-4)信息 8/7/18 3:07 PM:liquibase.integration.cdi.CDILiquibase:启动 Liquibase 3.5.4 2018-08- 07 15:07:09,285 ERROR [stderr] (MSC service thread 1-4) INFO 8/7/18 3:07 PM: liquibase: 成功获取变更日志锁 2018-08-07 15:07:09,781 ERROR [stderr] (MSC 服务线程 1-4)INFO 8/7/18 3:07 PM:liquibase:从 PUBLIC.DATABASECHANGELOG 2018-08-07 15:07:09,814 读取错误 [stderr](MSC 服务线程 1-4)严重 8 /7/18 下午 3:07:liquibase:db.changelog.xml:db.changelog.xml::1533645947580-1::BGADEYNE(生成):更改集 db.changelog.xml::1533645947580-1::BGADEYNE(生成)失败。错误:表“ALERTRESULT”已经存在;SQL 语句:2018-08-07 15:07:09,815 ERROR [stderr](MSC 服务线程 1-4)CREATE TABLE PUBLIC。

DATABASECHANGELOG 表为每个变更集包含一行。

+------------------+-----------------------+-------------------+-----------+
|       # ID       |         AUTHOR        |      FILENAME     |  EXECTYPE |
+------------------+-----------------------+-------------------+-----------+
| 1533645947580-1  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-2  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-3  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-4  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-5  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-6  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-7  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-8  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-9  |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-10 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-11 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-12 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-13 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-14 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-15 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-16 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-17 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-18 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-19 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
| 1533645947580-20 |  BGADEYNE (generated) |  db.changelog.xml |  EXECUTED |
+------------------+-----------------------+-------------------+-----------+

有谁知道我在这里做错了什么?

加德内布拉姆

代替

@Resource(name="java:/izalerting")

我需要使用

@Resource(lookup="java:/izalerting")

在野蝇 9

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章