SQL Azure 数据库架构补丁系统
SQL Azure Database Schema Patch system
我一直在努力寻找一种标准方法将数据库架构补丁包含到我的 Azure 持续部署流程中。
所以我正在寻找解决方案的问题是,随着应用程序的发展,数据库也在发展。经常会更改数据库以支持新功能等。
在早期的工作情况下,我使用了专有解决方案,将对数据库的更改保存在 Xml 文档的链接列表中。然后数据库知道它应用的最新补丁,如果存在任何新补丁,它会应用它们。这样很容易保持所有环境同步,并且更改遵循代码。
虽然这些专有解决方案效果很好,但我在想,在我实施另一个工具来执行此操作之前,我会看看是否有 SQL Azure 提供的标准解决方案来解决这个问题。但是一直没找到。
是否有一个或我需要自己创建一个工具?
Visual Studio 数据库项目支持部署到 Azure SQL 数据库,因此这是将其合并到 CI 工作流中的好方法。如果您习惯于传统的部署方法,这会有点改变思维方式;这些项目在部署时确定要部署的内容。例如,如果要创建一个 table,请向项目添加一个 Table 并填写列。然后,假设几个月后,您想要添加一列,只需将该列添加到 CREATE TABLE
脚本即可。当您部署时,它会发现唯一的模式更改是一个新列,它会添加它。
这是关于该主题的一个不错的小系列:
我一直在努力寻找一种标准方法将数据库架构补丁包含到我的 Azure 持续部署流程中。
所以我正在寻找解决方案的问题是,随着应用程序的发展,数据库也在发展。经常会更改数据库以支持新功能等。
在早期的工作情况下,我使用了专有解决方案,将对数据库的更改保存在 Xml 文档的链接列表中。然后数据库知道它应用的最新补丁,如果存在任何新补丁,它会应用它们。这样很容易保持所有环境同步,并且更改遵循代码。
虽然这些专有解决方案效果很好,但我在想,在我实施另一个工具来执行此操作之前,我会看看是否有 SQL Azure 提供的标准解决方案来解决这个问题。但是一直没找到。
是否有一个或我需要自己创建一个工具?
Visual Studio 数据库项目支持部署到 Azure SQL 数据库,因此这是将其合并到 CI 工作流中的好方法。如果您习惯于传统的部署方法,这会有点改变思维方式;这些项目在部署时确定要部署的内容。例如,如果要创建一个 table,请向项目添加一个 Table 并填写列。然后,假设几个月后,您想要添加一列,只需将该列添加到 CREATE TABLE
脚本即可。当您部署时,它会发现唯一的模式更改是一个新列,它会添加它。
这是关于该主题的一个不错的小系列: