Tom*_*ski 16 database sql-server version-control
我有SQL Server数据库并对其进行更改.某些数据库表的记录是我的应用程序运行所需的起始记录.我想对数据库和这些记录(行)进行版本控制.有可能这样做并将其捆绑到我的源代码的SVN版本控制或是否有其他解决方案?我想实现这一点,以便能够返回到以前版本的数据库并比较数据库修订版之间的更改.如果这个工具是免费的,开源的或者不是非常昂贵,那将是很好的.
我的环境是Visual C#Express,SQL Server 2008 Express和Tortoise SVN.
小智 5
迟到的答案,但希望对其他读者有用
我可以建议使用名为 ApexSQL Source Control 的 SSMS 插件。通过使用此插件,开发人员可以通过向导直接从 SSMS 轻松地将数据库对象与源代码控制系统进行映射。它包括对 Git、TFS、Mercurial、Subversion、TFS(包括 Visual Studio Online)和其他源代码控制系统的支持。它还包括对源控制静态数据的支持(因此您也可以版本控制记录)。
下载并安装 ApexSQL Source Control 后,只需右键单击要进行版本控制的数据库并导航到 SSMS 中的 ApexSQL Source Control 子菜单。点击“Link database to source control”选项,选择源码控制系统和数据库开发模式,例如:
之后,您可以排除不想链接到源代码管理的对象。可以按所有者或类型排除特定对象。
在下一步中,系统将提示您提供源控制管理系统的登录信息:
完成后,只需单击“完成”按钮,将显示“操作中心”窗口,提供将提交到存储库的对象(默认情况下,如果存储库为空)。
将数据库链接到源代码管理后,可以从“对象资源管理器”窗格中使用可以从源代码管理客户端执行的所有操作。其中包括:
您可以阅读这篇文章了解更多信息:http : //solutioncenter.apexsql.com/sql-source-control-reduce-database-development-time/
我们刚刚开始对我们的一些项目执行以下操作,对于填充“静态”表,它似乎工作得很好。
我们的脚本遵循构建临时表的模式,然后填充我们希望真实表类似的内容。我们只在这里放置人类可读的值(即我们不包括 IDENTITY/GUID 列)。脚本的其余部分采用临时表并执行适当的 INSERT/UPDATE/DELETE 语句以使真实表类似于临时表。当我们必须更改此“静态”数据时,我们所要做的就是更新临时表的填充。这意味着版本之间的差异按预期工作,并且回滚脚本就像从源代码控制获取先前版本一样简单。
INSERT/UPDATE/DELETE 仅需写入一次。事实上,我们的脚本稍微复杂一些,并且在实际的 DML 语句之前运行了两组验证。一组验证临时表数据(即我们不会通过尝试使数据库类似于临时表来违反任何约束)。另一个验证临时表和目标数据库(即外键可用)。
| 归档时间: |
|
| 查看次数: |
15038 次 |
| 最近记录: |