我有一个数据库变更管理工作流程。它基于 SQL 脚本(因此,它不是基于托管代码的解决方案)。
基本设置如下所示:
Initial/
Generate Initial Schema.sql
Generate Initial Required Data.sql
Generate Initial Test Data.sql
Migration
0001_MigrationScriptForChangeOne.sql
0002_MigrationScriptForChangeTwo.sql
...
启动数据库的过程是运行所有初始脚本,然后运行顺序迁移脚本。一个工具可以处理版本控制要求等。
我的问题是,在这种设置中,维护它是否有用:
Current/
Stored Procedures/
dbo.MyStoredProcedureCreateScript.sql
...
Tables/
dbo.MyTableCreateScript.sql
...
...
“这个”是指一个脚本目录(按对象类型分隔),它表示用于启动当前/最新版本的数据库的创建脚本。
出于某种原因,我真的很喜欢这个想法,但我无法具体证明它的需要。我错过了什么吗?
优点是:
- 对于开发和源代码控制,我们将拥有与我们习惯相同的每个文件的对象设置
- 对于部署,我们可以通过运行 Initial+Migrate 或通过从 Current/ 运行脚本将新的数据库实例启动到最新版本
- 对于开发人员,我们不需要运行数据库实例来进行开发。我们可以在 Current/ 文件夹上进行“离线”开发。
缺点是:
- 对于每次更改,我们都需要更新 Current/ 文件夹中的脚本,并创建一个迁移脚本(在 Migration/ 文件夹中)
提前感谢您的任何意见!