我有一个Java Maven项目。我正在使用liquibase更新数据库。
在本地,为了更新我的数据库,我只是在命令行中运行:
mvn liquibase:update
在生产环境中,我没有安装Maven。
我需要实现的是通过控制台,执行命令以在特定的类路径中运行liquibase脚本。
有什么想法吗?
编辑:
好的。我正试着遵循这种方法。我在文件夹中添加了以下项目:
liquibase jar
包含我的应用程序和liquibase changesets的战争
liquibase.properties:它包含以下内容:
URL = JDBC:JTDS:SQLSERVER:// XXXXXXXX:XXXX / XXXXX
用户名= XXX
密码= XXXXX
classpath = war_file.war
changeLogFile = WEB-INF /类/ 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?
答案 0 :(得分:3)
在Dev计算机上运行updateSQL目标:
mvn liquibase:updateSQL
您可以生成迁移脚本:
└── target
└── liquibase
└── migrate.sql
这是我最喜欢的liquibase功能之一。有时客户端坚持要求所有数据库架构更改必须由其员工手动执行。
另一种选择是在您的应用程序中构建自动升级功能。请参阅servlet listener