我们有 5 个环境 - Development、UAT、Staging、Live 和 DR。
拥有 100 多个内容编辑器,使 Live Sitecore 数据库内容增长得更快。
所以几乎每两周内容树与开发和 UAT 环境不同步。当我们尝试开发新事物时,它是过时的内容,有时新功能会破坏实时环境。
除了创建包和定期更新以便我们可以遵循适当的 CI 之外,任何人都可以提出一种保持所有 Sitecore 数据库同步的理想方法吗?
我们有 5 个环境 - Development、UAT、Staging、Live 和 DR。
拥有 100 多个内容编辑器,使 Live Sitecore 数据库内容增长得更快。
所以几乎每两周内容树与开发和 UAT 环境不同步。当我们尝试开发新事物时,它是过时的内容,有时新功能会破坏实时环境。
除了创建包和定期更新以便我们可以遵循适当的 CI 之外,任何人都可以提出一种保持所有 Sitecore 数据库同步的理想方法吗?
RAZL 不是您应该依赖于持续集成的解决方案,它只是一个数据库比较工具。
为 Sitecore 设置适当的 CI 正是我正在为我当前的项目做的事情,这就是我们想出的:
TDS:
如果你愿意花钱,那就看看TDS(Team Development for Sitecore)。
它与 Visual Studio 集成,并为您提供用于序列化 Sitecore 项目的工具,然后您可以将其存储在源代码管理中。
然后,构建服务器将能够获取这些序列化文件中的任何更改,并将它们部署到您的测试、暂存甚至生产环境中。
替代方案:
一个免费的替代方案是使用三个开源模块的组合:
我自己目前正在使用免费的替代品,效果很好。
您遇到过RAZL 吗,它是一个 Sitecore 数据库比较工具。
这就是他们对 Razl 的评价:
Razl 允许开发人员在两个 Sitecore 数据库之间进行完整的并排比较;突出显示缺失或不是最新的功能。Razl 允许您找到一个丢失的模板,将其移动到正确的数据库中。
将 Razl 称为“仅仅是一个数据库比较工具”是非常不正确的 - 从第一个版本开始,您可以将子树从一个 Sitecore 数据库复制到另一个。
最初的缺点是它不能自动化,但是在 Razl 3.0(我认为它是从 Razl 2.4 开始)中,添加了 Razl 脚本,因此您可以轻松地在环境之间自动化 Sitecore 数据库同步。
要了解其他人如何使用它,请参阅 Sean Holmesby 的评论: https ://community.sitecore.net/developers/f/8/t/1767
和 Nikola Gotsev 的评论: https ://sitecorecorner.com/2014/10/27/the-amazing-world-of-razl-part-1/
它非常便宜,并且在 v3.0 中,它比初始版本更强大,后者需要通过 GUI 界面进行手动操作。