我需要设计一个解决方案,我可以将位于两个独立的sitecore实例中的两个网站合并到一个实例中。如果在编写自定义应用程序以执行迁移之前有任何可以实现相同或者我应该考虑的所有内容,我真的很感激有人可以指出我的工具。
由于
答案 0 :(得分:5)
除了已经提到的所有内容:
Sitecore项目
如上所述,您可以使用RAZL合并内容(推荐),或者您可以创建Sitecore包甚至序列化项目,然后移动然后反序列化。
如果这些是当前Sitecore的两个完全独立的实例,没有依赖关系,那么我建议您将当前的解决方案组织到Sitecore内容树中的单独文件夹中。我会这样做:
如果您在两个网站中都使用词典,那么如果您还没有这样做,请将它们移到单独的词典域中。
以make it multisite compatible的方式构建主要内容。在迁移之前执行此操作可能会更好,但您也可能会破坏代码中的任何现有查询,具体取决于它们的结构。
小心Home
项。移动/重新使用安装了默认Sitecore安装的主项目是很常见的。确保两个实例之间的guid不同。 RAZL对于向您显示这些“重复”非常有用
希望您的Sitecore项目是序列化的(使用TDS或Unicorn),这将帮助您指出您对默认项目和任何潜在冲突区域所做的任何自定义。
<强>管道强>
如果每个项目需要不同的管道,则可能需要Site Specific Link Provider for your multisite implementation。
链接提供商
如果您有不同的要求,这里是site specific link provider的其他实现。
多个项目
如果您的代码库有2个单独的项目,合并这些项目可能非常耗时。您可能希望将它们分开,而是从单个解决方案中发布多个项目:
如果您有冲突,可能必须将文件结构重新组织到单独的项目文件夹中(确保更新Sitecore布局/子布局/渲染器以匹配)。
答案 1 :(得分:2)
我不知道有任何工具可以执行此操作,但您需要在每个实例中执行某些操作才能使它们共存而不会出现问题:
修补程序文件
首先确保将与默认设置不同的任何配置更改修补到特定于站点的包含文件
http://sitecore-community.github.io/docs/documentation/Sitecore%20Fundamentals/Patch%20Files/ -
通过这种方式,您可以跟踪每个网站的设置。
<强>提供商强>
您可能会发现每个网站都有不同的提供商设置,您可以使用切换提供商来解决这个问题
http://sitecoreskills.blogspot.co.uk/2014/02/a-switching-link-provider.html
http://makandracards.com/hhogdev/30779-sitecore-switching-provider
网络根结构
您应该忍受Web根目录中的文件具有特定于站点的文件夹以避免冲突,例如
/ site1 / css,/ site1 / layouts
管道处理器
如果您有每个站点的任何自定义管道处理器,您需要使这些处理器特定于站点并确保它们仅针对相应的站点运行。
Sitecore项目
您应该确保您的Sitecore项目具有与您的webroot结构类似的站点特定文件夹,例如templates / site1 / page template,templates / site2 / page template
全球性的asax
您应该确保在global.asax文件中启动时声明的任何内容都不会导致问题,例如任何自定义路由
答案 2 :(得分:2)
除@golden grahams列表外,请考虑以下内容:
答案 3 :(得分:0)
就工具而言,我建议你看看Razl from Hedgehog Development我过去曾成功地使用它来完成相关任务。
此外,您还想获取一个好的文件比较工具,如WinMerge或KDiff来合并您的配置条目。