好的..所以我是 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/