Java executeCommand liquibase、相对路径和用户反馈

Java executeCommand liquibase、相对路径和用户反馈,java,shell,liquibase,Java,Shell,Liquibase,对于一个研究主题,我需要知道是否有人/公司使用Liquibase来管理数据库以外的“其他东西” 例如,从现有数据库迁移某些数据。我们是几个开发人员,每个开发人员都有一个数据库在本地机器上进行测试。有时,我们需要更新数据库中的所有数据,或者从生产服务器添加一些现有数据来运行一些测试。 现在,我们在一个JAR中提取它们,然后手动运行这些JAR。我们希望通过在xml中编写一些命令来自动化此操作。例如: <changeSet id="2013-08-06_refactorProjectTa

对于一个研究主题,我需要知道是否有人/公司使用Liquibase来管理数据库以外的“其他东西”

例如,从现有数据库迁移某些数据。我们是几个开发人员,每个开发人员都有一个数据库在本地机器上进行测试。有时,我们需要更新数据库中的所有数据,或者从生产服务器添加一些现有数据来运行一些测试。 现在,我们在一个JAR中提取它们,然后手动运行这些JAR。我们希望通过在xml中编写一些命令来自动化此操作。例如:

    <changeSet id="2013-08-06_refactorProjectTable" author="morgan">
        <comment>A</comment>
        <executeCommand executable="java">
            <arg value="-jar"/>
            <arg value="/home/etiik/Bureau/SRMvision/integration-1.6-refactorProjectTable.jar"/>
        </executeCommand>
     </changeSet>

A.
我们问自己的问题是,是否有人已经这样做了,是否可行?! 此外,我需要一些关于绝对路径的帮助。正如我之前所说的,它在我们本地的机器上。所以像这样没有什么帮助。我想知道是否有可能将其用作相对路径。 实际上,如果我尝试以同样的方式执行,它在部署时失败(当我在这个executeCommand中运行pwd时,我看到我在glassfish域的config文件夹中!)

谢谢你的帮助!:) 致以最良好的祝愿


摩根(Morgan)

如果很多人用这种方式使用液化糖,我会感到惊讶。理想情况下,您可以将上述任务构建到执行环境的不同部分。对于像Ant或Maven这样的流行系统,您可以设置在每次运行某个命令(如liquibase:update或liquibase:rollback)时运行类似的东西

执行环境应设置当前目录。在Maven中,它只考虑来自本地根的文件,这是非常有用的,因为您可以洗牌并按您想要的任何方式进行编程。缺点是liquibase maven插件有点不可原谅。目前尚不清楚是maven还是插件的错,但这是需要记住的。我花了一两天时间和它搏斗


正如你所知,如果这对你的研究有用的话,我在纽约的一家中型初创公司工作,担任软件工程师。

老问题,但在反复考虑之后,看起来你可以运行一个相对于liquibase jar文件的可执行文件,例如

<changeSet id="OU" author="mathew">
        <executeCommand executable="{liquibase.jar dir}../bin/update-scripts/some.sh" />
    </changeSet>

我在几个项目中使用了liquibase,但从未有过这样的需要或想法-我认为这不是适合您需要的工具!