加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 寻找数据库版本控制的解决方案

发布时间:2020-12-12 08:30:30 所属栏目:MsSql教程 来源:网络整理
导读:问题描述: 在我们的项目中,我们有一个“生产数据库”和许多“开发者”.我们想知道我们如何管理和安装更改.我们已经有一些程序,但它需要很多时间,有时会导致错误. 我们不能丢失数据 – 所以我们不能使用“drop table”.我们只能使用“alter table”. 我们实际
问题描述:

在我们的项目中,我们有一个“生产数据库”和许多“开发者”.我们想知道我们如何管理和安装更改.我们已经有一些程序,但它需要很多时间,有时会导致错误.

我们不能丢失数据 – 所以我们不能使用“drop table”.我们只能使用“alter table”.

我们实际的“db版本控制程序”是这样的:

>我们有一个名为[actual_version]的表,其中包含已安装的数据库模式的实际版本
>我们有一个名为“changes_script.sql”的文件,其中包含所有数据库更改 – 此文件存储在SVN上

当开发人员想要在SVN上提交新的修订版本时,他需要通过添加来change_script.sql
一块:

if ([acctual_version].version < "23")) {
    --- sql script ----
updateVersionTo("23")
end if

当我们要升级数据库模式时,我们只是“执行”change_scripts.sql

有没有人有更好的主意?

解决方法

Red Gate的 Sql Compare工具可以比较两个表(或两个DDL脚本集合,或一组脚本到表等),并为您生成迁移脚本.

如果您在Ruby中工作,您可以查看“Ruby Migrations”,这是在代码中进行DB版本控制的一种形式化方式. (在.NET中有类似的东西,如RikMigrations和Fluent Migrator,我确定其他平台也存在类似的东西).

正如Randy Minder所说,您也可以使用VS DB Edition来管理您的架构,尽管我认为RedGate工具的工作原理很简单,不能将您绑定到特定的平台或IDE.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读