我正在寻找一种方法来进行日常部署并使数据库脚本与发布保持一致.
目前,我们有一个相当不错的部署源代码的方式,我们有单位代码覆盖,持续集成和回滚程序.
问题是使数据库脚本与发布保持一致.每个人似乎都尝试在测试数据库上运行脚本,然后在实时运行它们,当ORM映射更新(即更改生效)时,它会选择新列.
第一个问题是没有任何脚本可以写在任何地方,通常每个人都"尝试"将它们放入Subversion文件夹,但是一些懒惰的人只是在现场运行脚本,大多数时候没人知道谁做了什么到数据库.
第二个问题是我们有4个测试数据库,它们总是脱节,真正排列它们的唯一方法是从实时数据库进行恢复.
我非常相信,这样的流程需要简单,直接且易于使用,以帮助开发人员,而不是阻碍他们.
我正在寻找的技术/想法使开发人员想要记录他们的数据库脚本很容易,因此它们可以作为发布过程的一部分运行.开发人员希望遵循的流程.
任何故事,用例甚至链接都会有所帮助.