Azure SQL 数据库的 DevOps 实践
1. ORM 与数据库迁移工具
ORM 和数据库迁移工具几乎可用于任何平台,既可以作为独立对象,也可以嵌入框架中。无论你使用何种语言或平台进行编码,若倾向于采用 Code First 方法开发数据库,总能找到适用的工具。
在 CI/CD 管道中执行迁移操作相当简单,只需在管道工具中执行用于生成和应用迁移的同一工具即可。在此情况下,CI/CD 管道无需任何专门的 Azure SQL 操作或任务,因为无需执行任何 T-SQL 脚本,仅需能够调用迁移工具(通常是命令行应用程序)。在 GitHub Actions 或 Azure DevOps 中,可利用原生支持来运行任意命令(需注意,可能需要在 CI/CD 环境中安装所选工具)。
2. Database First 方法
2.1 ORM 上下文中的 Database First
Database First 意味着独立于使用数据库的应用程序对数据库进行建模和演进。该术语通常与 ORM 的使用相关。在 ORM 环境中,它表示借助某种工具,从现有的数据库表和对象创建应用程序中使用的部分类。这与 Code First 方法截然相反,Code First 是通过代码创建数据库及相关对象。
2.2 通用意义上的 Database First
若将 “Database First” 概念从 ORM 环境中抽离,以更通用和宽泛的视角来看,它意味着手动使用数据库自身的工具和语言来创建和演进数据库。以 Azure SQL 为例,即编写和使用 T-SQL,并负责将应用程序与数据库连接起来,可使用 ORM、Micro-