29

我正在考虑在我的网站上使用 Umbraco,到目前为止我很喜欢它。

我遇到的一个大问题是如何对 Umbraco 站点进行版本控制,因为很多数据都在数据库中?

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

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

我建立的网站基本上是一个拥有完整后端的个人广告网站。将 umbraco 表保存在单独的数据库中并将我的业务数据保存在另一个数据库中是否有意义?(由一堆用户控件访问)

4

2 回答 2

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-网站?p=0#comment11311

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

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

有一些灰色区域,最值得注意的是字典,它可以包含各种事物和内容。

我们与 Umbraco 的合作方式如下:

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

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

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

我们主要尝试避免在测试/开发环境中编辑内容,因为这是将内容合并到实时站点可能会变得棘手的地方。然而,有时这是不可避免的。我们还尝试避免通过 Umbraco 界面编辑模板等。

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

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

如果您想使用我们提供的 Visual Studio 模板,您可以从我们的网站下载。

于 2009-09-28T09:35:52.633 回答
2

我知道这已经得到解答,但我只是想强调一个事实,即在内容和代码同步方面已经取得了很大进展。例如 - uSyncuSiteBuilder都是外观精美的软件包,它们允许使用代码控制 CMS 内容(例如文档类型和数据类型),从而控制版本。它们使用起来相当简单,当然请在使用它们之前进行备份。媒体通常使用类似导出媒体的方式进行备份,尽管通常将媒体文件夹从其默认位置放在 SVN 中并不是一个好主意。而是将其放在自己的分支中,并将其作为虚拟目录托管在 IIS 中。这样,您的媒体就独立于代码。

大多数现代 CMS 要获得与版本控制良好配合的解决方案还有很长的路要走,尽管还有很多事情正在进行中。Umbraco 是一个很棒的 CMS 并且拥有一个庞大的社区。

于 2013-12-13T15:38:45.090 回答