我使用的是Sitecore 6.6.0,我们有多个环境
我必须直接从Local部署一些更改到Prod (不要问我为什么直接使用PROD,即使是QA,我的问题仍然相同),我正在做的是在我的本地创建一个包含所有项目的包,并分别创建与修复部署到PROD相关的所有文件的文件夹结构。
总是存在人为错误的可能性,因为我必须记住修复的所有相关项和文件,所以是否有更好的自动化方式,不会跳过任何更改的项目或文件?
另一方面,我使用Bit-bucket来控制sitecore代码,对于sitecore数据库呢?大多数sitecore开发都在DB中。源控制sitecore DB的最佳方法是什么?
更新
从nuget和unicorn.default.config安装Unicorn之后,我收到以下错误
Attempt by method 'Unicorn.Data.DataProvider.UnicornDataProvider..ctor(Unicorn.Data.ITargetDataStore, Unicorn.Data.ISourceDataStore, Unicorn.Predicates.IPredicate, Rainbow.Filtering.IFieldFilter, Unicorn.Data.DataProvider.IUnicornDataProviderLogger, Unicorn.Data.DataProvider.IUnicornDataProviderConfiguration, Unicorn.Predicates.PredicateRootPathResolver)' to access method 'System.Action`1<System.__Canon>..ctor(System.Object, IntPtr)' failed.
继续关注Github上的ReadMe
当我在网站上发表sync
/ unicorn.aspx时。
[P] Auto-publishing of synced items is beginning.
ERROR: Method not found: 'Sitecore.Publishing.Pipelines.Publish.PublishResult Sitecore.Publishing.Publisher.PublishWithResult()'. (System.MissingMethodException)
at Unicorn.Publishing.ManualPublishQueueHandler.PublishQueuedItems(Item triggerItem, Database[] targets, IProgressStatus progress)
at Unicorn.Pipelines.UnicornSyncEnd.TriggerAutoPublishSyncedItems.Process(UnicornSyncEndPipelineArgs args)
at (Object , Object[] )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Unicorn.ControlPanel.SyncConsole.Process(IProgressStatus progress)
解决方案:
对于较旧的sitecore版本(7.2之前的iirc),您需要禁用自动 发布配置文件,因为它依赖于sitecore稍后添加的方法。
答案 0 :(得分:1)
为了跟踪您正在进行的数据库更改,您首先需要安装能够帮助您序列化更改并存储在源代码管理中的软件。 Sitecore(TDS)和Unicorn的团队开发是两个最受欢迎的选择。
您还需要确保拥有自己的本地数据库,以便进行更改,以便将这些更改与QA,PROD等隔离开来,从而保持与开发代码相同的隔离级别。
通过引入可重复且已知的流程,此流程的自动化有助于减少您为部署提及的人为错误。以下是一些可以帮助您入门的博客:
您可能还希望查看配置转换以支持Sitecore Include修补程序文件中的不同值。 SlowCheetah插件将允许在Visual Studio中创建变换(它现在可能在Visual Studio 2015中......)。 TDS可以自动获取这些转换并在构建服务器上执行它们,或者您可以使用Visual Studio本身来创建已发布的包。
答案 1 :(得分:0)