Database 如何在带有svn的maven项目中实际使用liquibase
上周我阅读了liquibase quick start和所有相关教程,但我觉得我没有完全理解如何使用它在数据库中进行连续更改,我还有一些问题需要解决 我正在使用maven在netbeans中开发一个应用程序,它有3个模块:dbunit模块、服务模块和webapp模块。正如您可能猜到的,dbunit负责数据库工作,服务在上面,webapp使用服务。因此父pom有所有GroupID的声明,所有JAR和插件的工件和版本 我设法从命令行生成changelog文件,因为db已经存在,假设我使用liquibase maven插件正确设置了所有内容: 问题1:既然我现在正在做任何数据库更改,那么liquibase的目标是什么 问题2:例如,如果我想向数据库添加一个新表,我会将此新变更集添加到同一个变更日志文件中,还是必须创建一个新的changelog.xml文件 问题3:我相信当dbunit运行时,它将运行变更集,但是否有必要将插件添加到th webapp模块中(可能是在使用cargo插件部署之前运行liquibase目标),或者dbunit将负责这一点 问题4:subversion到底有什么帮助保持变更日志的状态(假设只有一个变更日志,请参考问题2) 谢谢你的阅读和帮助Database 如何在带有svn的maven项目中实际使用liquibase,database,maven-2,netbeans,jakarta-ee,liquibase,Database,Maven 2,Netbeans,Jakarta Ee,Liquibase,上周我阅读了liquibase quick start和所有相关教程,但我觉得我没有完全理解如何使用它在数据库中进行连续更改,我还有一些问题需要解决 我正在使用maven在netbeans中开发一个应用程序,它有3个模块:dbunit模块、服务模块和webapp模块。正如您可能猜到的,dbunit负责数据库工作,服务在上面,webapp使用服务。因此父pom有所有GroupID的声明,所有JAR和插件的工件和版本 我设法从命令行生成changelog文件,因为db已经存在,假设我使用liquib
<phase>process-resources</phase>
进程资源
但我也使用弹簧执行器。所以每次我的应用程序启动时,它都会启动一个liquibase执行器来执行数据库中丢失的变更日志。这很好,因为当您准备好工作和测试时,liquibase已经更新了您的dev数据库而不是生产数据库。但当您安装war并启动Web应用程序时,liquibase会自动处理它,使您的数据库恢复到当前状态。因此,在部署新版本之前,您不必记得做了一些额外的工作
如果需要新表,请添加changelog-0002.xml文件并在主changelog.xml中引用它
感谢您的解释,我的头脑变得更清晰了。还有一件事我很好奇。在我的项目中,
Spring
使用hibernate
。我删除了数据库的表,将hbm2ddl
放入验证并将生成的变更日志添加到主变更日志中,看起来测试用例运行时,它们失败是因为它们找不到表,我想知道是否还有其他技巧。再次感谢您的回复。我认为您应该只在初始更改日志中使用hbm2ddl。我根本不使用hbm2ddl。