2009-09-28 60 views
29

我正在调查使用Umbraco为我的网站,到目前为止我很喜欢它。Umbraco:使用版本控制?试/生产?

我遇到的一个大问题是,我如何才能版本控制Umbraco网站,因为大量数据都在数据库中?

如何设置测试/开发环境并以简化的方式部署到生产环境?

今天(没有Umbraco)我用SVN。用不同的数据库副本进行测试和生产。

我建立的网站基本上是一个个人广告网站,有一个完整的后端。它会使umbraco表保存在一个sepparate数据库中,并将我的业务数据保存在另一个数据库中吗? (通过一堆用户控件访问)

回答

33

这是开始使用Umbraco的常见障碍,答案是使用适合您的东西。关于这事上一把umbraco论坛

但是已经有很多的讨论,看看这里:

http://our.umbraco.org/forum/core/general/3619-Source-control-and-multiple-developers http://our.umbraco.org/forum/getting-started/installing-umbraco/2918-Update-an-Umbraco-website?p=0#comment11311

要考虑的关键是内容和代码划分。 umbraco中的大部分代码都存储在数据库的外部,因此可以存储在subversion或任何其他源代码管理平台中。例如,模板,XSLT,CSS,XSLT扩展等都存储在文件系统上。

页面内容和网站结构存储在数据库中。

有一些灰色地带,最值得注意的是字典,它可以包含各种各样的东西以及内容。

我们用一把umbraco的工作方式如下:

我们有一个独立的Visual Studio Web Project它包含了模板,XSLT,CSS,事件处理程序,用户控件等,这是存储在SVN文件夹。然后在构建这个项目时,将文件复制或编译并复制到umbraco站点的测试/ dev服务器实例中。

一旦更改被批准,我们只需复制文件。

如果您需要在Umbraco实例之间同步内容,您可以使用Umbraco Pro(其中包含一个名为Courier的组件,它恰好就是为此目的),或备份您的实时数据库并在需要时恢复到您的开发环境中甚至使用复制)。

我们主要尝试避免在测试/开发环境中编辑内容,因为这是将内容备份到活动网站会变得棘手的地方。但有时这是不可避免的。我们也尝试并通过Umbraco界面避免编辑模板等。

对于您的最终问题“我应该将业务数据存储在另一个数据库中”的答案相当棘手,因为它很大程度上取决于您将如何处理数据。如果内容最好存储在CMS中,则将其存储在CMS中,但如果它的关系数据非常不适合CMS,则将其分开存储。

我们正在开展一个项目,其中数据存储在外部数据库中,我们已将应用程序直接集成到Umbraco后端。这是一项不平凡的任务(尽管只是通过用户控件获取一些数据很容易),您应该仔细考虑从外部存储数据所需的工作量与CMS的内置功能以及必须播放的预算/时间用。

如果你想使用我们做的视觉工作室模板,那么你可以从our website下载它。

+0

感谢您的一个很好的答案。你介意共享你为部署文件构建脚本吗? – 2009-09-28 11:23:34

+0

Hi Niels,我添加了一个链接到我们使用的visual studio模板。这包含一个exanple文件夹结构和示例发布事件(您将需要编辑)。只需将其存储在SVN中,并避免通过umbraco界面编辑代码! – 2009-09-28 15:26:59

+2

谢谢,非常有趣的答案。有两件事我不太确定......首先,你如何处理文档类型?在迁移时,是否只是在生产服务器上手动重新创建它们?其次,只要上传新的* .master文件而不添加节点到数据库,Umbraco可以处理它吗? – efdee 2010-02-24 16:36:29

2

我知道这已经得到了回答,但我只是想强调一个事实,即在内容和代码同步方面取得了很多进展。例如 - uSyncuSiteBuilder都是很好看的软件包,允许使用代码控制CMS内容(如文档类型和数据类型),因此可以控制版本。它们相当简单易用,当然在使用这些之前请确保备份。媒体通常使用类似Export Media的备份方式进行备份,但通常将SVN中的媒体文件夹放在其默认位置不是一个好主意。而是将其放在自己的分支中,并将其作为虚拟目录存放在IIS中。这样你的媒体独立于代码。

尽管有很多事情正在进行,但大多数现代CMS仍有很长的路要走,要有能够与版本控制一起使用的解决方案。 Umbraco是一个很棒的CMS,并且拥有一个庞大的社区。