sql-server - Git 和 SQL Server MDF 文件

标签 sql-server git

好的..所以我是 Git/Github 的新手,在我职业生涯的大部分时间都在使用 Visual Source Safe 并且看到了光明 - 喜欢它。因此,我已将我所有的 .NET 项目迁移到我的 Github 帐户,并且还想使用 Git 管理我所有的 SQL Server 数据库。在我所有的项目中,我总是将我的数据库文件放在/Database 子目录中,因此我的源代码树中有/Databases/MyDatabase.mdf 和/Databases/MyDatabase.ldf。我正在使用 Git 跟踪这些文件,它们与我的所有其他源代码一起很好地显示在 Github 中。

这是我预期会发生的事情:我使用 NET STOP MSSQLSERVER 停止 SQL Server,然后 checkout 一个分支,这样 Git 就会为该分支提取 MDF 和 LDF 文件。使用 NET START MSSQLSERVER 重新启动 SQL Server,并在该特定分支的源和数据库上做我需要做的任何工作。 Git 会跟踪我对 MDF 文件的更改,当我执行阶段/提交/推送时,它会将更改发送回远程存储库。

我通过下 pull 数据库并向表中添加新列并进行提交来尝试此操作。 Git 告诉我没有对任何我没有预料到的项目进行更改...我更改了 MDF 文件。 Git 无法跟踪 MDF 文件中的更改吗?我的第一个猜测可能是因为它是二进制的而不是基于文本的 Git 可能会遇到问题,但我相信可以使用 Git 来跟踪图像文件和其他二进制项目,所以这似乎不是问题所在.有任何想法吗?这是不可能的吗?我什至不应该尝试这样做吗?预先感谢您的意见。

最佳答案

更改 数据库文件放入任何源代码管理中是非常糟糕的主意。尝试创建/更新适当的脚本并将它们存储在源代码管理中——这是在数据库中跟踪模式更改的正确方法

如果您使用的是 Visual Studio - 这是从其中的数据库和服务器项目开始的好时机。但有时它会表现得很奇怪,因此请谨慎使用

或者您可以使用一些商业/免费软件来跟踪数据库架构和数据内的变化,例如 RedGate Schema Compare 或 Redgate Data Compare

关于sql-server - Git 和 SQL Server MDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972142/

相关文章:

sql - 如何找到 SQL Server 数据库的时区?

sql-server - 我们可以将 SQL Server 与 Azure 通知中心连接吗?

sql - 在 DateTime 上加入有时会在 Access 和 SQL Server 之间失败

git - 如何使用 Git 查看文件在哪些提交中被重命名?

git - 在 Jenkins 上推广所有构建以掌握

mysql - SQL Server 与 MySQL - 经典 ASP 中的 SQL 注入(inject)漏洞

.net - 名称中带有句点的 BCP 数据库

git - 有没有办法通过 git CLI 完全远程使用 git repo?

git - 在没有冲突的情况下尽早重新排序分支上的提交

git - 从不同的存储库应用 gradle 文件