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

为现有Spring boot gradle项目集成liquibase

程胤运
2023-03-14

我有一个Spring Boot项目,它最初使用hibernate.ddl-auto: update命令来创建模式。现在我想迁移到liquibase,因此以下步骤是:

  1. 在cmd上运行diffChangeLog以生成现有模式-

到现在为止,一直都还不错。现在我想把这个更改转移到生产环境中,当我的spring boot项目启动时,它应该在启动之前自动运行changelogSync命令,然后引导项目,这样我就不需要手动运行这些命令。我怎样才能做到这一点?

共有2个答案

戎泰
2023-03-14

有两种方法可以使用。更改管道(在jenkins、bamboo或任何其他工具中),这样您甚至可以在启动应用程序之前执行changelogSync(优点是liquibase命令与应用程序完全解耦)。第二种方法是这样实现CommandLineRunner:

@Component
public class CommandLineAppStartupRunner implements CommandLineRunner {
    

    @Override
    public void run(String...args) throws Exception {
         Runtime rt = Runtime.getRuntime();
         Process pr = rt.exec("liquibase changelogSync");//or any other command
    }
}

如果需要,您甚至可以将命令作为参数传递给命令行运行程序。

后烨煜
2023-03-14

就不同的ChangeLog而言,它用于指出一般的差异并生成更改来解决其中的大部分。如果change eLogSync命令仅将更改日志中所有未部署的更改标记为在数据库中执行,则它不会部署任何更改。据了解,这不是迁移数据库的最佳方法

 类似资料:
  • JMH建议您使用他们的原型创建项目。通过将我的代码作为依赖项包含在这个生成的项目中,我能够以这种方式运行我的基准测试代码。 但是,我现在尝试使用配置文件将基准测试直接集成到我的项目源代码中 当我这样做并运行生成的基准测试jar时,我得到一个不兼容的类更改错误 任何指点将不胜感激

  • 我正在构建我的第一个Android应用程序,我在github上发现了一个java项目,我想和我的应用程序集成在一起。我是否可以手动将java文件添加到我的android项目目录 app->java->com.example.appname java客户机的src->main目录有一个嵌套的文件结构,所以我不确定这是否会引起问题。 我已经尝试了本文中的解决方案,但我没有看到步骤2中提供的选项如何将现

  • 问题内容: 如果我已有使用和容器的Web应用程序。将Akka集成到其中的正确方法是什么? 就像我将要拥有的并且彼此交流一样。开始使用这些参与者的切入点是什么?(例如:1.放到那里2.更改配置3.获取对actor的引用) 我找到了http://doc.akka.io/docs/akka/2.2-M3/general/configuration.html,但是他没有给我胶水。只想获取集成的真实示例。

  • 我正在尝试对现有的android项目进行本地集成,但在android studio中构建项目时出现了以下异常。 原因:java.lang.Exception:React Native CLI无法确定Android项目配置。这可能是由于配置错误。配置输出:[root:/Users/muratoner/Desktop/backup/Sabanci.Projects/Mobile/hrweb-ract-

  • 现有的Eclipse项目使用Maven,但不知道JUnit。我应该/可以将JUnit集成到现有项目中,还是应该创建一个专门用于JUnit的新项目,或者有更好的选择吗?

  • 问题内容: 是否有任何IDE(或与此相关的任何其他工具)都能够基于现有项目生成POM? 我最终按照Peter和Sal的建议,使用Maven原型生成了POM,然后将现有资源移入了。感谢您的帮助。 问题答案: 您可以在IntelliJ中执行此操作,但是它生成的POM可能比手工编写要复杂得多。如果您的项目当前在JBuilder或Eclipse中,则可以首先导入它。 相反,我建议您在POM中描述您的项目,