代码之家  ›  专栏  ›  技术社区  ›  black sensei

如何在带有svn的maven项目中实际使用liquibase

  •  3
  • black sensei  · 技术社区  · 15 年前

    我正在使用maven在netbeans中开发一个应用程序,它有3个模块:dbunit模块、服务模块和webapp模块。正如您可能猜到的,dbunit负责数据库工作,服务在它上面,webapp使用服务。因此父pom声明了所有jar和插件的所有groupID、artifactId和版本。

    我设法从命令行生成changelog文件,因为db已经存在,假设我使用liquibase maven plugin正确地设置了所有内容:

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

    :例如,如果我想向数据库中添加一个新表,是将此新变更集添加到同一个变更日志文件中,还是必须创建一个新的changelog.xml文件?

    问题3

    :subversion究竟有什么帮助保持changelog的状态(假设只有一个changelog请参阅问题2)

    1 回复  |  直到 15 年前
        1
  •  6
  •   Kariem    12 年前
    1. http://www.liquibase.org/documentation/maven

    所以你应该把你的液化执行绑定到一个类似的阶段

    <phase>process-resources</phase>
    

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

    1. 像这样将changelog.xml与includes一起保存到changelog文件中

      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd“>
      如果需要新表,请添加changelog-0002.xml文件并在主changelog.xml中引用它

    2. 你应该有很多变更日志文件。所以这个问题不适用。