【问题标题】:Umbraco: working with version control? test/production?Umbraco:使用版本控制?测试/生产?
【发布时间】:2009-09-28 08:03:08
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# asp.net umbraco


    【解决方案1】:

    这是开始使用 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 站点的测试/开发服务器实例。

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

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

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

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

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

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

    【讨论】:

    • 感谢您的精彩回答。你介意分享你的构建脚本来部署文件吗?
    • 嗨 Niels,我添加了一个指向我们使用的 Visual Studio 模板的链接。这包含一个示例文件夹结构和示例后期构建事件(您需要对其进行编辑)。只需将其存储在 SVN 中,避免通过 umbraco 界面编辑代码!
    • 谢谢,非常有趣的答案。有两件事我不太确定...首先,您如何处理文档类型?迁移时是否只是在生产服务器上手动重新创建它们?其次,当您仅通过上传新的 *.master 文件而不将其节点添加到数据库中来添加模板时,Umbraco 是否可以处理它?
    • 我和 efdee 有完全相同的问题:可以通过上传 *.master 文件来添加模板,而不将节点添加到数据库吗?
    • 我已经找到了答案。如果您要添加新模板,您首先必须在 umbraco cms ui 中创建模板。此后,您只需将 .master 页面复制到 /masterpages/ 文件夹即可覆盖它们。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-06
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      • 2020-07-01
      相关资源
      最近更新 更多