gpt4 book ai didi

console - 在生产环境中执行 liquibase 更新

转载 作者:行者123 更新时间:2023-12-03 18:38:56 24 4
gpt4 key购买 nike

我有一个 Java Maven 项目。我正在使用 liquibase 更新数据库。

在本地,要更新我的数据库,我只需在命令行中运行:

mvn liquibase:update

在生产环境中,我没有安装 Maven。

我需要实现的是通过控制台,执行命令以在特定类路径中运行 liquibase 脚本。

有任何想法吗?

编辑:

好的,我正在尝试遵循这种方法。我将以下项目放入一个文件夹中:
  • liquibase jar
  • 包含我的应用程序和 liquibase 变更集的 war
  • liquibase.properties:它包含以下内容:

    url=jdbc:jtds:sqlserver://xxxxxxxx:xxxx/xxxxx

    用户名=xxx

    密码=xxxxxx

    类路径=war_file.war

    changeLogFile=WEB-INF/classes/sql/projectName/liquibase/liquibase.xml

  • 然后,在控制台中,我执行:
    java -jar liquibase-core-3.0.5.jar update

    有用!它找到我的 liquibase.xml 文件并开始 liquibase 更新。

    但是,当它引用包含在 lib 中的另一个 jar 文件中的 liquibase.xml 时,它会失败,因为我将它包含在 liquibase.xml 中:
    <include file="../other_module/src/main/resources/sql/projectName/liquibase/liquibase.xml" />

    如何在不执行“src/main/resources”的情况下添加此“include”并使其找到此 xml?

    最佳答案

    在您的开发机器上运行 updateSQL 目标:

    mvn liquibase:updateSQL

    您可以生成迁移脚本:
    └── target
    └── liquibase
    └── migrate.sql

    这是我最喜欢的 liquibase 功能之一。有时客户坚持要求所有数据库架构更改必须由他们的员工手动执行。

    另一种选择是在您的应用程序中构建自动升级功能。见 servlet listener

    关于console - 在生产环境中执行 liquibase 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20004426/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com