TDS 与 TFS 自动同步内容

TDS Auto Sync Content with TFS

我们目前有一个小问题,即保持 sitecore 内容同步的唯一方法是手动获取暂存数据并与 TDS 同步,然后将其提交到源代码管理中,这样内容就不会丢失。正如您所想象的那样,这是一个非常重复且漫长的过程。

我的问题是,有没有一种方法可以在环境中自动执行从暂存主数据库到 TDS 项目或其他方式的内容同步?我们希望的最终结果是让暂存中所做的所有内容更改自动与源代码管理同步(如果可能)。

不要尝试使用 TDS 保持内容同步,您将始终面临一场艰苦的战斗。

TDS 实际上应该仅用于开发人员控制的项目 - 模板、渲染、布局、核心数据库项目等,以及可能用作 lookup/settings 项目的某些内容项目。一般内容和媒体不应保留在 TDS 中,除非是为了为开发人员设置测试内容。作为一般经验法则,模板上升(local > dev > qa > prod),内容下降(prod > qa > dev > local)。

如果您试图使不同的服务器环境保持同步,请查看 RAZL. It's possible to script the sync process 以将其自动化作为持续部署过程的一部分。

如果只是为了将内容放到本地开发人员机器上,那么只需创建一个一次性软件包并在本地安装即可。据我所知,不可能自动同步到 TDS,而且 TFS is the probably not the best choice for Sitecore for this kind of thing anyway. If you really really want to go down this route then Git and Unicorn 是一个更好的选择。

我赞同 jammykam 对非源代码控制的内容编辑。请查看 SQL 备份的自动化,这样您就可以随着时间的推移定期备份数据,并使用工作流来获得内容版本。

不过对于你的问题,我不知道有什么方法可以自动执行 TDS 同步过程。如果您真的想要将所有更改发送到源代码管理中,您将需要一个 Sitecore 事件处理程序或一个定期安排的代理来序列化内容,然后将其签入 TFS。

通常,TDS 旨在让本地开发人员能够在他们的本地数据库中进行更改,这些更改需要成为解决方案的一部分,并且 share/deploy 通过源代码控制和自动部署进行这些更改。