我正在使用带有 Visual Studio 数据库版的 SQL-Server 2008。
使用此设置,保持架构同步非常容易。基本上,有一个“比较架构”工具允许我将两个数据库的架构和/或数据库架构与源代码控制的创建脚本文件夹同步。
然而,当涉及到数据时,情况就不太清楚了,它可以是三种不同的类型:
在我看来,我的第三个项目不应该是源代码控制的(当然,它应该定期备份)
但是关于静态数据,我想知道该怎么做。
你如何管理你的数据库静态数据?
最佳答案
我已经解释了我在博客中使用的技术 Version Control and Your Database .我使用数据库元数据(在本例中为 SQL Server 扩展属性)来存储部署的应用程序版本。我只有从一个版本升级到另一个版本的脚本。在启动时,应用程序从数据库元数据中读取已部署的版本(缺少元数据被解释为版本 0,即尚未部署任何内容)。对于每个版本,都有一个应用程序功能可以升级到下一个版本。通常,此函数运行执行升级的内部资源 T-SQL 脚本,但也可以是其他的,例如在数据库中部署 CLR 程序集。
没有用于部署“当前”数据库模式的脚本。新的分期付款会遍历所有中间版本,从版本 1 到当前版本。
我喜欢这种技术有几个优点:
这种方法多次拯救了我的皮肤,我现在是一个真正的信徒。只有一个缺点:在源代码中没有明显的地方可以找到“程序 foo 的当前形式是什么?”。因为最新版本的 foo 可能在 2 或 3 个版本之前已经升级,并且此后没有更改,所以我需要查看该版本的升级脚本。我通常只查看数据库并查看其中的内容,而不是搜索升级脚本。
最后一点:这实际上不是我的发明。这是完全按照 SQL Server 自身升级数据库元数据 (mssqlsystemresource) 的方式建模的。
关于sql - 您是否将数据库静态数据放入源代码控制中?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525591/