好的......所以我是Git/Github的新手,因为我的职业生涯大部分时间都在使用Visual Source Safe,并且已经看到了光 - 喜欢它.因此,我已将所有.NET项目迁移到我的Github帐户,并且还希望使用Git管理我的所有SQL Server数据库.在我的所有项目中,我总是将我的数据库文件放在/ Database子目录中,所以我在源代码树中有/Databases/MyDatabase.mdf和/Databases/MyDatabase.ldf.我正在使用Git跟踪这些文件,它们在Github上显示我所有剩余的源代码.
这就是我期望发生的事情:我使用NET STOP MSSQLSERVER停止SQL Server并检查分支,以便Git下拉该分支的MDF和LDF文件.使用NET START MSSQLSERVER重新启动SQL Server,并在该特定分支的源和数据库上执行我需要做的任何工作.Git会跟踪我对MDF文件的更改,当我执行stage/commit/push时,它会将更改发送回远程存储库.
我通过下拉数据库并向表中添加新列并执行提交来尝试此操作.Git告诉我,我没想到的任何项目都没有变化......我改变了MDF文件.Git是否无法跟踪MDF文件中的更改?我的第一个猜测可能是因为它是二进制而不是文本库Git可能有问题,但我相信可以使用Git来跟踪图像文件和其他二进制项目,这样看起来不会是问题.有任何想法吗?这是不可能的吗?我甚至不想这样做吗?提前感谢您的意见.
将更改的数据库文件放入任何源代码控制中是一个非常糟糕的主意.尝试创建/更新适当的脚本并将它们存储在源代码管理中 - 这是跟踪数据库内部架构更改的正确方法
如果您正在使用Visual Studio - 这是从数据库和服务器项目开始的一个好点.但有时它表现得很奇怪,所以要小心谨慎地使用
或者您可以使用一些商业/免费软件来跟踪数据库架构和数据内部的更改,例如RedGate架构比较或Redgate数据比较