版本控制下的数据库(Sitecore)

时间:2010-09-10 08:56:36

标签: database version-control content-management-system sitecore

我刚刚在SO上阅读了以下文章;

Do you source control your databases

我们正在使用Sitecore,并且通常将3个标准数据库附加到我们的MSSQL服务器。 我们有Core,Master和Web数据库。在Sitecore后端开发不同模板的过程中,我们都使用一个数据库,只使用Sitecore CMS发布我们的数据库更改。例如,当我创建一个datatemplate时,我的同事会在刷新他的“内容树”时看到相同的datatemplate。从我在上面链接的帖子中读到的内容当您有多个版本的源代码和不同的数据库时,需要使用数据库源代码控制。是否需要将我们的数据库置于源代码管理之下?看看这一点,知道Sitecore实际上是处理项目到不同数据库等的发布,我们都通过Sitecore CMS在同一个数据库上工作,我认为这不需要。我很好奇是否仍有将数据库置于版本控制之下的任何优势。

2 个答案:

答案 0 :(得分:5)

Sitecore 6引入了非常酷的功能,称为项目序列化。无需将整个数据库文件保留在源代码管理下。您只能存储必要项目的序列化版本。这些是文件系统上的简单文本文件。

请查看this blog post from Alex了解详情。

答案 1 :(得分:2)

您链接到的帖子以及后续帖子更适合您“拥有”数据库的自定义应用程序。即你已经创建了表,存储过程,视图等...我同意如果你创建了一个数据库,那么你的模式需要在你的源代码控制中。但是,对于Sitecore网站,您不“拥有”Sitecore数据库架构,因此您不必在源代码管理中拥有它。 (我希望Sitecore在源代码管理中有架构; p)

因此,您不拥有实际的数据库架构,并且不应该在源代码管理中拥有它,但是您为Sitecore网站创建的模板和其他项目呢?

对于解决方案中的Sitecore项目,您需要清楚地了解它们的所有权。 Sitecore附带的项目和模板不归您所有,因此您不应在源代码管理系统中管理它们。但是,您和您的团队创建的模板应该在源代码管理中!

为了将特定的Sitecore项目放入Source控件,您可以使用Site提到的Sitecore的内置序列化功能。您还可以使用Team Development for Sitecore之类的工具自动执行此过程,并帮助您在环境之间自动构建和部署项目。