每当您进行数据库更改时,您如何将这些更改应用于团队中的其他数据库(以及您的服务器)?
目前,我们正在使用一个名为changes.sql的文件,其中我们将所有更改分开并用ISO日期注释分隔。
是否有更好的方法?
每当您进行数据库更改时,您如何将这些更改应用于团队中的其他数据库(以及您的服务器)?
目前,我们正在使用一个名为changes.sql的文件,其中我们将所有更改分开并用ISO日期注释分隔。
是否有更好的方法?
看一下http://dbmaintain.org/overview.html - 这是一个相当强大的工具,用于管理数据库更新。它基本上通过按正确顺序执行多个SQL脚本来工作。它会记住已经执行过哪些脚本。如果已执行的脚本被更改,它会报告错误(在生产模式下)或清除数据库并重新执行所有脚本(在测试模式下)。这里还有一个很好的教程。
编辑:您还可以将SQL脚本分组(例如按发布版本)。这里的重要优点是您可以为单元测试、测试环境、持续集成、近实时和生产环境使用相同的测试。
我们使用迁移工具(migratordotnet - 还有其他替代品)来编写执行数据库命令的 C# 类。每次程序或集成测试调用时,迁移都在本地运行,并在每次部署时在服务器上运行。迁移框架会自动跟踪已应用的迁移。当然,这些迁移是版本控制存储库的一部分。