gpt4 book ai didi

webdeploy - Composite C1 - 在本地开发,同步到实时站点

转载 作者:行者123 更新时间:2023-12-03 22:26:58 26 4
gpt4 key购买 nike

我有几个 Composite C1 CMS 网站。

目前我在实时站点上使用基于 Web 的 CMS 来编辑它们。

但是 - 我想在本地更新 Visual Studio 中的(代码和内容) - 然后同步到网络。但是,如果我的本地副本比在线副本旧(例如,非技术客户在实时站点上编辑了某些内容)并且我进行了 Web 部署 - 它会越过服务器上新文件的顶部。

我需要一个解决方案来解决最新的变化?我在 Google 或 C1 文档中找不到任何内容。

我如何同步 - 最好使用 Web Deploy。我需要某种版本控制吗?

是否有最佳实践 - 通过 Web 界面编辑实时站点似乎有点冒险并且速度很慢。

最佳答案

这种情况的一般答案似乎是使用 Package Creator .有了它,您可以在本地进行开发,将您更改的文件添加到一个包中,并在实时站点上安装该包。但是,此解决方案根本没有涵盖您问题的所有部分,并且具有某些限制:

  • 您不能有选择地向包添加内容。它是所有页面或没有页面。
  • 添加数据类型很容易,但稍后更新它们需要您删除数据类型(和数据),然后重新创建数据类型。

  • 根据我的经验,如果您将包内容限制为前端内容,例如 css、图像等,则包适用于增量站点更新。

    你说你需要一个解决最新变化的解决方案 - 我相信在一些工具的帮助下,唯一的解决方案就是你自己。我不认为这里有 Elixir 的解决方案。

    你应该使用版本控制系统吗?是的!无论如何。即使您不与任何人共享您的代码,VCS 也是从文件系统角度了解 Composite C1 的好方法,因为您可以在开发过程中仔细跟踪磁盘上哪些文件发生了更改。当您想不断地为已经活跃的网站添加功能时,这些知识至关重要 - 您需要知道要部署什么,不应该接触什么。

    请务必阅读有关 Composite 如何适合 VCS 的文档: http://docs.composite.net/Configuration/C1-and-Version-Control

    我假设您的站点正在使用 XML 数据存储(如果您使用 SQL 数据存储,您的内容在同步时不会被覆盖)。

    这意味着您的整个 Web 应用程序都位于 Web 服务器磁盘上的一个文件夹中,这在这里可能是一个优势。
    我将尝试概述一个可能对您有用的解决方案,尽管我必须强调我从未尝试过 - 我正在输入时编写它。

    假设您正在使用 git ,从生产网络服务器下载整个站点,并将整个该死的东西*提交到您的主分支。

    然后从该提交创建一个新的功能分支,并开始进行稍后要部署的更改,并在进行过程中小心地提交工作,确保仅将功能运行所需的更改提交到功能分支。

    现在,您已准备好部署,并切换回 master 分支,再次下载整个站点并将其提交给 master。

    然后您将您的功能分支合并到主分支,并让 git 完成所有艰苦的工作,将您的更改与来自实时站点的更改拼接起来。肯定会有合并冲突,这就是你必须跳进去的地方,并自己决定哪些内容需要上线。

    完成并测试后,您可以将站点 Web 部署到生产环境。
    合并时可能会更改事件站点,因此请考虑在此过程中关闭站点或部分站点。

    如果您使用 SQL 数据存储,我建议您购买 Red Gate 之类的工具 SQL CompareSQL Data CompareSQL Delta ,将您的开发数据库与生产数据库进行比较,并手动选择可与您的功能部署一起应用于生产数据库的 SQL 脚本。

    '* 考虑使用 .gitignore 文件以避免提交某些文件 - 请参阅 docs仅供引用。

    关于webdeploy - Composite C1 - 在本地开发,同步到实时站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20281597/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com