当前位置: 首页 > 知识库问答 >
问题:

Mongock Standalone未执行变更日志

冉丰茂
2023-03-14

我的项目中有以下配置,但由于某种原因,更改日志从未执行过。
有什么想法吗?

我可以成功地使用mongo客户端并执行CRUD操作,只是MongockStandalone不起作用。

pom。xml

<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongock-standalone</artifactId>
    <version>4.1.14</version>
</dependency>
<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongodb-v3-driver</artifactId>
    <version>4.1.14</version>
</dependency>
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.11.0</version>
</dependency>

主类中的驱动程序代码:

MongockStandalone.builder()
                 .setDriver(MongoCore3Driver.withDefaultLock(mongoClient, "demo"))
                 .addChangeLogsScanPackage("co.my.test.persistence.changelog")
                 .buildRunner();

变更日志类:

package co.my.test.persistence.changelog;

//imports

@ChangeLog(order = "001")
public class Changelog001 {

    @ChangeSet(order = "001", id = "test", author = "Igor Flakiewicz")
    public void test() {
        // this method is never executed, the sout doesn't occur and breakpoints are not reached
        System.out.println("PLEASE WORK!");
        // migration code
    }

}

共有1个答案

湛宜春
2023-03-14

您可能正在遵循Mongock文档中的快速入门。由于这张票据,我们在文档中发现了一个bug。使用以下代码构建流道后:

MongockStandalone.builder()
             .setDriver(MongoCore3Driver.withDefaultLock(mongoClient, "demo"))
             .addChangeLogsScanPackage("co.my.test.persistence.changelog")
             .buildRunner();

您需要执行方法

因此,您应该使用的正确代码如下:

MongockStandalone.builder()
             .setDriver(MongoCore3Driver.withDefaultLock(mongoClient, "demo"))
             .addChangeLogsScanPackage("co.my.test.persistence.changelog")
             .buildRunner()
             .execute();
 类似资料:
  • 在本文章教程中,我们将演示如何添加文件到 Git 存储库,并对存储库中的文件作修改和提交。 注意:在开始学习本教程之前,先克隆一个存储库,有关如何克隆存储库,请参考: http://www.yiibai.com/git/git_clone_operation.html 现在,在克隆存储库之后,我们开始学习 Git 基本的文件修改和版本管理操作。假设要使用 sample 这个存储库来协同管理一个Py

  • 本文档详细说明了在1.4版本中所做的各个问题级别的更改。有关1.4中新增功能的叙述性概述,请参见 SQLAlchemy 1.4有什么新功能? . 1.4.26no release date orm [orm] [bug] ¶ 改进了使用连接表继承配置映射时生成的异常消息,其中两个表没有设置外键关系,或者设置了多个外键关系。消息现在是特定于ORM的,并且包括上下文, Mapper.inherit_c

  • 问题内容: 我有一系列的格式,需要更改每个条目的日期。我想到了许多简单的解决方案,但是没有一个对我有用。目前,唯一有效的方法是 将系列设置为索引 从索引中查询月份和年份 使用年,月和1重建新的时间序列 真的不是那么复杂,是吗?有一个月开始,但是不幸的是,这没有用。该方法似乎没有任何功能,而当系列是一列而不是索引本身(的一部分)时,功能甚至更少。 问题答案: 您可以使用和,例如: 给出:

  • 该项目 为了寻找解决方案,我首先使用maven在执行LiquiBase:Update时将变更日志的SVN修订版存储到中。基于修订版号检索变更日志容易出错。 我已经花了一周的时间来寻找一个健壮的解决方案,在谷歌上搜索了几个小时,构建了几个测试用例(使用了适应的父级和具体的POM,部分使用了maven scm插件等等),但没有运气。最初,我计划使用LiquiBase:tag存储文件路径+修订,但只有当

  • 问题内容: 我已经尝试了这两个代码,但是却没有执行,有人可以告诉我为什么吗? 提前致谢 问题答案: 试试这个代码: 它会在源元素的位置单击并按住,移至目标元素的位置,然后释放鼠标。 要么 它将单击并按住源元素的位置,移动给定的偏移量,然后释放鼠标。 要么 它将执行以上两个代码的操作。 我在Java上编写此代码。您可以转换为指定的语言。 从动作引用。

  • 问题内容: 我无法将日期格式更改为。 这是我当前的实现: 输出:[WST 2013年5月28日星期二00:00:00] 有人可以帮我吗,谢谢!:D 我添加了此while语句,然后将日期格式再次设置为默认格式。 问题答案: 没有格式。它仅是格林尼治标准时间1970年1月1日00:00:00以来的毫秒数 当您执行操作时,它只是提供对象的默认方法输出。 您需要使用将实际格式化为 哪个输出… 扩展以满足变