如何使用git作为SQL Server Management Studio的源代码控制提供程序

时间:2010-09-25 10:19:06

标签: sql-server git ssms

我们可以使用GIT作为sql management studio的源代码控制吗?

10 个答案:

答案 0 :(得分:15)

用于SSMS中的数据库源控制

代理SVN - SCC Subversion插件。 http://www.zeusedit.com/agent/ssms/ms_ssms.html

http://www.red-gate.com/products/sql-development/sql-source-control/

enter image description here

答案 1 :(得分:8)

我发现ApexSQL有一个本机支持Git作为源控制系统的工具。它作为SSMS加载项提供,并提供了一个向导,您可以使用该向导将数据库对象与源控制系统进行映射。要做到这一点:

  1. 下载并安装ApexSQL Source Control
  2. 启动SSMS并在对象资源管理器中选择要链接到源控件的数据库
  3. 右键单击数据库,然后形成上下文菜单,从ApexSQL Source Control子菜单中选择“将数据库链接到源代码管理”选项
  4. 选择源控制系统(在您的情况下是Git)并从2个数据库开发模型中选择 - 共享或专用。当您链接多个开发人员将同时工作的数据库时,建议使用共享模型 Database development model - choose between shared or dedicated
  5. 使用源代码管理过滤您不想跟踪的对象:按架构,类型或按架构,类型或名称命名
  6. 提供适当的登录信息和存储库字符串。对于Git来说: <protocol>://<hostname>:<portnumber>/<Git server name>/<repository>(参见下面的示例): Log into Git source control system
  7. 本文中提供了更详细的分步说明: http://knowledgebase.apexsql.com/link-database-source-control-system-2/

答案 2 :(得分:7)

尝试sql-source-control,这是一个免费的开源CLI,用于将SQL引入Git等源代码管理系统。

https://www.npmjs.com/package/sql-source-control

答案 3 :(得分:5)

Microsoft已发布SQL Operations Studio。它是一个在Windows,macOS和Linux上运行的免费工具,用于管理SQL Server,Azure SQL数据库和Azure SQL数据仓库;无论他们在哪里跑步。它附带native GIT support

答案 4 :(得分:3)

您可以将Git Bash添加为外部工具(工具|外部工具...):

答案 5 :(得分:2)

还没有,但是如果你去http://redgate.uservoice.com/forums/39019-sql-source-control/suggestions/537681-add-git-support投票给redgate添加对git的支持,它可能会在下一个版本中添加。是的我知道它是商业产品,但有些产品足以支付费用!

答案 6 :(得分:2)

Red Gate SQL Source Control已更新,包括Git和Mercurial支持(以及Perforce和TFS)。预先警告他们的DVCS集成不是与其SVN产品相关的100%功能完整,因为SSMS内部不支持查看对象历史等基本功能。如果像SQL Compare这样的其他Red Gate工具是您工作流程的一部分,那么这可能是一个交易破坏者。

我们的解决方法是安装TortoiseGit或GitExtensions并导航到磁盘上的存储库以深入了解详细信息。它有效,但有点笨重。

答案 7 :(得分:1)

由于SSMS(或多或少)是Visual Studio的自定义版本,因此您可以使用适用于VS的解决方案:

Using Git with Visual Studio

或者,从一开始就在Visual Studio中管理数据库源代码,而不是在SSMS中。这样(至少在VS2010中)你有数据库项目,集成部署和单元测试等。或者继续使用SSMS并在准备好时从外部工具检查你的代码(当然不太方便)。

但这取决于你正在做什么:SSMS是一个DBA工具,VS是一个开发人员工具。无论哪种方式,您应该使用某种形式的源代码控制,但从问题的确切地说,您需要确定哪种文件版本。

答案 8 :(得分:1)

VersionSQL是一个SSMS源代码控制插件,我的设计重量轻,易于使用。在“对象资源管理器”面板中,只需右键单击数据库或对象,然后单击“提交”。 VersionSQL将以一个整齐有序的文件夹结构将其编写到Git / SVN。

https://www.versionsql.com

上查看

答案 9 :(得分:-3)

围绕这个问题已经有很多答案你可能想看一下,但简而言之....

版本控制的本质是存储原始文件,然后存储增量,提交的原始文件与后续更改之间的差异(确定,这使得它可能比它更简单),然后管理版本编号并提供工具来提取您需要的任何特定修订。这也允许您比较以前的修订和回滚(等等)

RDBMS由模式和数据组成,这些模式和数据会发生变化,并且在数据的情况下可能会频繁更改,因此,即使您使用VCS,您还可以进行哪些比较以进行恢复,这有何帮助?假设您有一个实时系统,那么恢复到早期版本会丢失临时存储的所有数据,虽然我从未尝试过,但我怀疑它可能会破坏RDBMS的一般完整性。

更好的解决方案是使用为该RDBMS构建的备份应用程序,MySQLdump在MySQL的情况下说,它可以生成数据和数据结构的快照,并将其存储在安全的地方。

可以定期安排转储,您可以执行主/从数据库(或其他策略)等操作,以便您可以动态备份实时生产数据库,而不会影响性能