构建和维护一个数据库,然后由许多开发人员进一步深化/开发,这是软件开发中不断发生的事情 . 我们创建一个构建脚本,并维护随着数据库不断增长而应用的更多脚本 . 有许多方法可以管理它,从手动更新到控制台应用程序/构建脚本,可以帮助自动执行这些过程 .
Has anyone who has built/managed these processes moved over to a Source Control solution for database schema management? If so, what have they found the best solution to be? Are there any pitfalls that should be avoided?
Red Gate似乎是MSSQL世界中的一个重要角色,他们的数据库源代码控制看起来非常有趣:http://www.red-gate.com/products/solutions_for_sql/database_version_control.htm
虽然它看起来不像是取代了(默认)数据*管理流程,但它只替换了我的pov的一半变更管理流程 .
(当我谈论数据时,我的意思是查找值和那种东西,默认情况下或在DR场景中需要部署的数据)
我们在.Net / MSSQL环境中工作,但我确信所有语言的前提都是一样的 .
4 回答
类似的问题
这些现有问题中的一个或多个可能会有所帮助:
The best way to manage database changes
MySQL database change tracking
SQL Server database change workflow best practices
Verify database changes (version-control)
Transferring changes from a dev DB to a production DB
tracking changes made in database structure
或者搜索Database Change
我负责管理我工作的银行内部开发的数据仓库 . 这需要不断更新,我们有一个由2-4个开发人员组成的团队 .
我们很幸运,因为我们的“产品”只有一个实例,因此我们不必满足部署到可能处于不同版本的多个实例的需求 .
我们为数据库中的每个对象(表,视图,索引,存储过程,触发器)保留一个创建脚本文件 .
我们尽可能避免使用
ALTER TABLE
,更喜欢重命名表,创建新表并迁移数据 . 这意味着我们不必查看ALTER
脚本的历史记录 - 我们总是可以通过查看其创建脚本来查看每个表的最新版本 . 迁移由单独的迁移脚本执行 - 这可以部分自动生成 .每次我们发布时,我们都有一个脚本,它以适当的顺序运行创建脚本/迁移脚本 .
仅供参考:我们使用Visual SourceSafe(yuck!)进行源代码控制 .
我一直在寻找一个SQL Server源代码控制工具 - 并且使用SQL Server Management Studio作为插件,遇到了许多完成这项工作的高级版本 .
LiquiBase是一个免费的,但我从来没有完全满足我的需求 .
还有另一个免费产品,虽然它可以从SSMS中运行,并将对象和数据编写到平面文件中 .
然后可以将这些对象泵入新的SQL Server实例,然后重新创建数据库对象 .
见gitSQL
也许你要求LiquiBase?