gpt4 book ai didi

database - 如何使用 svn 在 Maven 项目中实际使用 liquibase

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:51 25 4
gpt4 key购买 nike

上周我阅读了有关 liquibase 快速入门和所有相关教程的信息,但我觉得我并没有完全了解使用它来连续更改数据库的情况,而且我还有一些问题尚未解决。

我正在使用带有 3 个模块的 maven 在 netbeans 中开发一个应用程序:dbunit 模块、服务模块和 webapp 模块。正如您可能猜到的那样,dbunit 负责处理数据库,服务位于它之上,而 webapp 使用services.so 父 pom 具有所有 jar 和插件的所有 groupids、artifactids 和版本的声明。

我设法从命令行生成变更日志文件,因为数据库已经存在并且假设我使用 liquibase maven 插件正确设置了所有内容:

问题 1:liquibase 的目标是什么,因为现在我正在做任何数据库更改?

问题 2:如果我想向数据库中添加一个新表,我是将这个新的 changeSet 添加到同一个 changelog 文件中,还是必须创建一个新的 changelog.xml 文件?

问题 3:我相信当 dbunit 运行时它会运行变更集,但是否也有必要将插件添加到 webapp 模块(可能在使用 cargo 插件部署之前运行 liquibase 目标)或者 dbunit 会处理这个问题?

问题 4:subversion 究竟是什么有助于保持变更日志的状态(假设只有一个变更日志引用问题 2)

感谢阅读本文并提供帮助。

最佳答案

  1. 参见 http://www.liquibase.org/documentation/maven

所以你应该将你的 liquibase 执行绑定(bind)到像

这样的阶段
<phase>process-resources</phase>

但我也使用 spring 执行器。因此,每次我的应用程序启动时,它都会启动一个 liquibase 执行程序来执行数据库中丢失的更改日志。这很好,因为当您准备好工作和测试时,liquibase 已经更新了您的开发数据库,​​但没有更新您的生产数据库。但是当你安装你的 war 并启动你的 webapp 时,liquibase 会自动处理它以将你的数据库恢复到当前状态。因此,您不必记得在部署新版本之前做一些额外的事情。

  1. 像这样将您的 changelog.xml 包含到 changelog 文件中

    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
    当你想要一个新表时,添加一个 changelog-0002.xml 文件并在你的主 changelog.xml 中引用它

  2. 参见答案 1。我也会放入您的 webapp 模块。

  3. 您应该有很多更新日志文件。所以这个问题不适用。

关于database - 如何使用 svn 在 Maven 项目中实际使用 liquibase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279810/

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