数据库开发者在设计和创建数据库对象,如表、存储过程和视图时,经常面临着不断变化的需求。随着应用程序的增长和变化,数据库结构(或模式)的增加和更改是开发过程中不可或缺的一部分。开发者通常使用基于图形用户界面(GUI)的工具来创建所需的数据库对象,例如Microsoft的SQL企业管理器用于MS SQL Server。GUI工具提供了一种强大且快速的方式来创建数据库对象,因为它们自动化了工作的详细信息,允许开发者专注于提高性能。然而,它们也隐藏了用于创建新对象的SQL命令,这可能导致开发者在需要在不同数据库之间迁移结构时出现问题。
许多组织在开发过程的不同阶段使用不同的数据库。他们可能有开发数据库、测试数据库、暂存数据库和生产数据库。一旦应用程序的一个迭代完成并进入下一个阶段,相应的数据库结构就需要迁移(例如,从暂存数据库迁移到生产数据库)。如果他们使用SQL Server作为数据库,组织通常使用以下三种过程之一:
手动迁移数据库通常涉及将SQL语句手工编码到SQL迁移脚本中,或者使用SQL企业管理器对每个单独的更改进行迁移,将更改从旧数据库迁移到新数据库。SQL变更脚本或更改列表通常由所有开发者协作生成,使用SourceSafe中的公共文件,DBA负责最终检查和执行更改。
使用SQL Compare创建脚本以将一个数据库的结构转换为另一个数据库的结构。这涉及到使用SQL Compare来可视化两个数据库之间的差异,并自动创建SQL脚本来执行更改。这通常由DBA完成,但开发者通常也有自己的副本以确保一切正常。
使用SQL比较和同步工具包(SQL Toolkit)自动化管理SQL数据库更改。这涉及到使用提供SQL Compare功能的API来创建一个紧密的自动化过程。一旦自动化完成,更改可以在每天的特定时间运行,并在SourceSafe中记录(或类似的)以备将来使用。
使用SQL Toolkit的项目通常有以下设计目标:
与SourceSafe集成通常是通过SQL Compare的快照文件完成的,它提供了数据库模式在给定时间的完整描述,但也允许将任何未来的数据库与那天的状态进行比较。生成的脚本也自动存储在SourceSafe中并独立测试。