我是数据库版本控制的新手,我正在开发一个java web应用程序(vaadin,spring,spring-data-jpa),我正在使用maven作为项目管理工具。通过manen,我正在管理releases并进行代码版本控制。现在我的麻烦是数据库版本控制。我试图通过一个例子解释我的问题:
当我的应用程序版本为0.0.1-SNAPSHOT时,我创建了一个包含一些表的数据库,在某个时刻我决定发布这个版本(1.0.0),并在我的生产环境中安装它,而在我的内部trunk(在SCM上)我有1.0.1-SNAPSHOT版本。现在我必须添加一些新功能,这些新功能需要添加一些其他表和属性,当我完成开发这些新功能时,我更新我的数据库并发布(1.1.0)。现在如果出于某些问题我想重新安装1.0.0我无法重置数据库状态。我看到有一些数据库版本控制插件How to: database versioning with maven2?,但我想要一些建议,这些情况下的指导原则是什么,以及允许我管理它们的插件。