65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用 GitHub 和 SQL Source Control 对数据库进行版本控制

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2018 年 9 月 28 日

CPOL
viewsIcon

7217

本文介绍了一些简单的步骤,教您如何使用 SQL Source Control 创建 GitHub 数据库仓库并将数据库代码导入其中。

您对在 GitHub 中对 SQL Server 数据库进行版本控制感兴趣吗?本文介绍了一些简单的步骤,教您如何使用 SQL Source Control 创建 GitHub 数据库仓库并将数据库代码导入其中。

我假设您是一名 SQL Server 专业人士,不需要深入了解源代码控制系统的工作原理,也不需要深入了解版本控制命令,但您有一个尚未进行版本控制的数据库,并且您希望快速上手。

数据库仓库与其他仓库有什么不同吗?

不。数据库仓库与任何其他仓库一样;它是一个文件夹,用于组织构建工作项目所需的所有文件和资产,在本例中是一个数据库。最低限度,这将包括定义数据库中每个表的 CREATE 脚本,以及任何架构范围的对象,如视图和存储过程等,以及插入任何必要的静态数据的脚本。

步骤 1:创建 GitHub 帐户

如果您还没有 GitHub 帐户,只需访问 GitHub 网站并注册。GitHub 支持双重身份验证,因此要利用此功能,您需要提供通常的登录详细信息以及用于接收身份验证代码的移动设备。

您将获得阅读 Hello World GitHub 指南的选项。它解释了 GitHub 的基本目的,如何创建仓库,如何创建新分支,进行和提交更改,创建拉取请求,然后将新分支上所做的更改合并回 master 分支。这很值得您花十分钟时间阅读,尽管本文我们不会深入探讨分支和合并;我们只使用 master 分支。

步骤 2:在 GitHub 中创建数据库仓库

第一步是在 GitHub 中创建数据库仓库,如《Hello World》指南中所述。我们将把 Customers 数据库放入源代码控制,因此我们将其命名为 Customers。它将是一个公共仓库,除非您有付费订阅,在这种情况下您可以选择将其设为私有。选择 使用 README 初始化此仓库 选项,可选地选择一个 <a href="https://help.github.com/articles/ignoring-files/" target="_blank">.gitignore</a> 文件和许可证,然后点击 创建仓库

我们在这里所做的是在 GitHub 服务器上创建一个“远程”数据库仓库。我们可以使用 GitHub 浏览器管理和管理此仓库,但在基于团队开发的H作的基本模式下,每个开发人员都会在本地克隆仓库,将更改提交到工作仓库,通常从本地工作文件夹,然后将更改推送到 GitHub 上的仓库,以便团队其他成员可以访问它们,并拉取其他人的更改。

图 1

步骤 3:将数据库仓库克隆到本地计算机

下一步是将我们刚刚创建的“远程”数据库仓库克隆到您的本地计算机。为此,我们将使用 GitHub Desktop,因此您需要下载并将其安装在您的计算机上。还有其他工具可以执行此任务,例如 SourceTree,因此请随意使用替代工具,但我不会在这里讨论它们。

打开 GitHub Desktop。通过点击左上角的 + 号然后选择 克隆 选项卡来克隆您的 Customers 仓库。选择 Customers 仓库并点击 克隆 Customers。或者,如果您在 GitHub 浏览器中,您可以点击进入 Customers 数据库仓库,然后选择 克隆

选择您希望克隆 Customers 的目录,然后就完成了。您现在已经将数据库仓库克隆到本地。

使用 SQL Source Control 对新数据库进行版本控制

在传统的使用版本控制系统的工作模式中,我们可能会通过将所有表和其他对象脚本到项目的本地“工作文件夹”(例如通过使用 SSMS 中的 任务 | 生成脚本 向导),将所有对象脚本提交到本地仓库,然后从那里将它们推送到远程仓库,或者创建拉取请求来将现有数据库置于版本控制之下。

相反,我将展示如何使用 SQL Source Control 执行此任务。在这种模式下,每个开发人员都可以在自己的本地副本数据库上工作,创建新对象和修改现有对象,然后使用 SQL Source Control 将更改提交到他们的本地仓库,然后将这些经过测试的更改推送到远程仓库,其他开发人员可以在那里访问它们。

图 2

步骤 4:安装 SQL Source Control

访问 Redgate 网站并下载 SQL Toolbelt 的试用版。工具带中还有更多工具,但对于本教程,您只需要 SQL Source Control。它只是 SSMS 的一个插件,允许开发人员将对本地数据库所做的更改直接提交到版本控制仓库(在本例中为 GitHub),以及使用其他人的已提交更改更新数据库。

步骤 5:创建数据库并将其链接到 Github

打开 SSMS,并在您的本地 SQL Server 实例上,创建一个名为 Customers 的新数据库。

在对象资源管理器中选择数据库并打开 SQL Source Control 选项卡(或者右键单击数据库并选择 将数据库链接到源代码控制)。如果 SQL Source Control 选项卡尚未在 SSMS 中打开,您可以通过 工具 | SQL Source Control 打开它。

选择 链接到我的源代码控制系统,选择 Git,然后输入或导航到本地 Customers 仓库的文件夹位置。点击 链接,您的数据库就链接到您的数据库仓库了!

数据库目前是空的,但如果您转到 提交 选项卡,您将看到一条消息,表明您的本地仓库中有一个可以推送到远程仓库的提交。这是因为您刚刚将数据库链接到仓库,并且 SQL Source Control 在其中放置了一个文件(RedGate.ssc)。

输入一个有意义的提交消息,例如“Init”,然后点击 推送。系统会要求您输入您的 GitHub 凭据,填写完后,SQL Source Control 会将 RedGate.ssc 文件从您的本地仓库推送到您的 GitHub 仓库。

请注意,如果您启用了两步验证,您将需要设置一个个人访问令牌,以授权 SQL Source Control 和 GitHub 之间的通信。转到 GitHub 浏览器,在 设置(在您的用户配置文件下)中,找到 开发者设置 并选择 个人访问令牌

步骤 6:在 GitHub 仓库中创建数据库对象脚本

我们将在 Customer 数据库中创建多个表。创建这些表的脚本可在此处下载

创建表后,我们希望将每个表的 CREATE 脚本提交到本地 Customers 数据库仓库。再次转到 SQL Source Control 选项卡,然后在 提交 页面上单击刷新。您现在会看到 SQL Source Control 检测到您刚刚所做的更改。

图 3

再次输入一个有意义的提交消息(例如 创建初始客户表),然后点击 提交。您的更改现在已提交到您的本地仓库。

在您的本地 GitHub 文件夹中,您现在会找到名为 TablesSecurity 的子文件夹,分别包含每个新表的 CREATE 脚本文件和客户架构文件。

与之前一样,我们可以通过输入提交消息(您可以使用小钟形符号重复使用之前的消息)并点击 推送,再次将此更改推送到 GitHub 仓库。

作为替代方案,您还可以使用 GitHub Desktop 客户端或您使用的任何其他本机客户端,将更改从本地仓库推送到中心仓库。我鼓励您尝试一下。

后续步骤

现在您了解了 GitHub 和 SQL Source Control 的基础知识,以及如何将新数据库置于版本控制之下。但是,在某个时候您会收到“拉取请求”,表示其他开发人员对数据库所做的更改,您会希望将其拉取到您的本地仓库,然后将其应用到您的数据库开发副本。我将在下一篇文章中介绍几种方法。

© . All rights reserved.