我们目前有一个小问题,即保持站点核心内容同步的唯一方法是获取暂存数据并手动与 TDS 同步,然后将其提交到源代码控制中,这样内容就不会丢失。正如您可以想象的那样,这是一个非常重复且冗长的过程。
我的问题是有没有一种方法可以在从登台主数据库到 TDS 项目或通过其他方式的环境中自动执行此内容同步?我们希望的最终结果是让暂存中所做的所有内容更改与源代码控制自动同步(如果可能的话)。
不要尝试使用 TDS 保持内容同步,您将始终面临一场艰苦的战斗。
TDS 应该只用于开发人员控制的项目——模板、渲染、布局、核心数据库项目等,可能还有某些用作查找/设置项目的内容项目。一般内容和媒体不应保存在 TDS 中,除非是为了为开发人员设置测试内容。作为一般经验法则,模板上升(本地 > 开发 > qa > prod)而内容下降(产品 > qa > 开发 > 本地)。
如果您试图保持不同的服务器环境同步,请查看RAZL。作为持续部署过程的一部分,可以编写同步过程脚本以使其自动化。
如果只是为了将内容放到本地开发人员机器上,那么只需创建一个一次性包并在本地安装它。据我所知,自动同步到 TDS 是不可能的,而且TFS 可能不是 Sitecore处理这类事情的最佳选择。如果你真的很想走这条路,那么 Git 和Unicorn是一个更好的选择。
我在非源代码控制内容编辑上回应 jammykam。相反,请查看 SQL 备份的自动化,以便您可以随着时间的推移定期备份数据,并使用工作流来获得内容版本。
不过,对于您的问题,我不知道自动化 TDS 同步过程的方法。如果您确实想要将所有更改发送到源代码管理中,您将需要一个 Sitecore 事件处理程序或一个定期安排的代理来序列化内容,然后将其签入 TFS。
通常,TDS 旨在让本地开发人员能够在其本地数据库中进行更改,这些更改需要成为解决方案的一部分,并通过源代码控制和自动部署共享/部署这些更改。