跟踪和/或自动化 DB 模式更改的最佳方法是什么?我们的团队使用 Subversion 进行版本控制,并且我们已经能够以这种方式自动化我们的一些任务(将构建推送到登台服务器,将测试代码部署到生产服务器) ,但是我们仍然在手动进行数据库更新。我希望找到或创建一种解决方案,使我们能够在不同环境的服务器之间高效地工作,同时继续使用 Subversion 作为后端,通过它将代码和 DB 更新推送到各种服务器。
许多流行的软件包包括自动更新脚本,检测数据库版本和应用必要的变化。这是在更大范围内(跨多个项目,有时是跨多个环境和语言)实现此目的的最佳方法吗?如果是这样的话,是否有现有的代码可以简化流程,或者最好只使用我们自己的解决方案?之前有人实现过类似的东西并将其集成到 Subversion 后提交钩子中吗? 或者这是个坏主意?
虽然支持多个平台的解决方案更可取,但我们绝对需要支持 Linux/Apache/MySQL/PHP 堆栈,因为我们的大部分工作都是在该平台上进行的。