将生产环境中的节点顺序同步到dev / test / stage环境

时间:2016-09-16 13:54:30

标签: kentico

我们使用Kentico 8.2并拥有开发,测试,舞台和制作环境。我们有时会在较低的环境中使用当前正在生产的内容刷新内容树。 Kentico支持这一点,但在完成树的完全同步之后,节点在很大程度上是乱序的。手动同步所有节点订单是相当费力的。我们如何自动完成此操作? Kentico原生支持吗?

我的一个想法就是在T-SQL中使用一个简单的更新语句,它将Production CMS_Tree表连接到测试环境(加入NodeAliasPath)中的同一个表,并将Test中的NodeOrder设置为等于生产中的NodeOrder值。

我们尽量不在数据库本身进行太多的直接数据操作,因为担心未知的副作用。在这种情况下,对节点顺序的这种更新是否会对数据库或Kentico应用程序中的任何其他内容产生负面影响?

3 个答案:

答案 0 :(得分:1)

进行分期>页面>并选择您的顶级页面,然后单击同步当前子树应正确同步页面及其顺序。在同步之前,您可能必须删除目标服务器上的所有页面,以验证所有内容都排成一行。如果它不起作用,那可能是一个错误,你是否使用最新的修补程序?

答案 1 :(得分:0)

目前尚不清楚节点乱序是什么意思,但是分段的事情是它在更新文档时(甚至移动它们)通过创建小型分段任务来尝试保持整个内容同步=处于相同状态左右)。

通过完全同步,它会将内容及其整个结构推回去,所以当您更改节点的顺序时,假设生产它会尝试将其推到较低的节点上,并且在此过程中它会重写文档或创建新文档。他们当前的订单和它在CMS_Tree表中,但由于它可能已经错过了其他文档的一些较小的任务,你最终得到了节点。

为什么不更频繁地登台或使用为此生成的任务来保持两者同步,否则您可能最终会出现不一致的环境和暂存异常。

你是正确的,直接的DB操作,特别是在内容树上,不建议因为有FK约束,但它仍然可能导致一个可怕的混乱,所以我建议反对它。

答案 2 :(得分:-1)

这就是我要做的。如果我必须从源服务器匹配,我将从目标服务器删除内容树。考虑到这是真的,我现在将从源到目标服务器进行内容刷新。

我已多次这样做并且像魅力一样。