我正在设置两个开发环境(一个将在我的本地服务器上,另一个在云服务提供商上,我将在那里工作,这可能需要比本地服务器更多的内存)。
我可以做些什么来确保两个环境始终完全同步?我正在考虑集中部署应用程序并使用工具同步SQL Server数据库,以及另外一种工具,用于在两个类似的环境中的两个VM之间保持Sharepoint服务器同步。还有什么能帮助实现这个目标吗?
由于
答案 0 :(得分:1)
对于SharePoint开发来说,这是一个非常棘手的问题。
就SQL服务器而言(对于非SharePoint的东西),您可以使用SQL Server中提供的工具同步数据库。例如,复制数据库向导,或者如果您需要完成自定义工作,甚至可以编写自己的SSIS包。
SharePoint是另一回事。您不能仅仅通过复制数据库将网站集/ Web应用程序从一个服务器同步到另一个服务器,它将无法工作(出于多种原因,但主要是因为当您在服务器上创建Web应用程序时,它使用GUID作为应用程序ID。该GUID在数据库中的任何地方使用,如果您尝试更改它,表格之间的所有链接都将被破坏)。未记录SharePoint数据库的结构,MS建议不要手动修改它。老实说,即使您确实设法直接从SQL服务器同步数据库,您也会遇到其他问题,因为并非您所做的所有自定义都会保存到数据库中(很多内容都会进入12个配置单元)。
所以它归结为你想要实现的目标。
如果您尝试同步已编码的自定义项(即您的内容类型,列表模板,Web部件等)。我建议您只需从开发环境构建WSP包,并在每次需要同步时部署它们。
如果您只是尝试同步数据(即列表项),则可以使用备份/还原解决方案(您可以在管理中心找到它)。请注意,如果您有自定义,它不是太可靠。它在开箱即用的网站上运行良好,但是一旦你使用自己的列表模板等,恢复起来可能会很棘手。
您还可以使用web services或Content Deployment API编写要同步的代码,看看它是否符合您的需求。
您还可以查看将为您完成全部或部分工作的工具。 Here is one
所以基本上,无论你如何决定,它都不会像你预期的那样简单。 DEV / TEST / PROD环境同步问题是SharePoint开发的经典之作。
我致力于高度自定义的SharePoint Web应用程序,我们找到的最佳解决方案是: