在生产环境中执行liquibase更新

时间:2013-11-15 15:23:18

标签: console production liquibase

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

在本地,为了更新我的数据库,我只是在命令行中运行:

mvn liquibase:update

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

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

有什么想法吗?

编辑:

好的。我正试着遵循这种方法。我在文件夹中添加了以下项目:

  1. liquibase jar

  2. 包含我的应用程序和liquibase changesets的战争

  3. liquibase.properties:它包含以下内容:

    URL = JDBC:JTDS:SQLSERVER:// XXXXXXXX:XXXX / XXXXX

    用户名= XXX

    密码= XXXXX

    classpath = war_file.war

    changeLogFile = WEB-INF /类/ SQL / PROJECTNAME / liquibase / liquibase.xml

  4. 然后,在控制台中,我执行:

    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?

1 个答案:

答案 0 :(得分:3)

在Dev计算机上运行updateSQL目标:

mvn liquibase:updateSQL

您可以生成迁移脚本:

└── target
    └── liquibase
        └── migrate.sql

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

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