我正在设置两个开发环境(一个在我的本地服务器上,另一个在云服务提供商上,在那里我要做的工作可能比在本地服务器上需要更多的内存)。
我可以做些什么来确保两个环境始终完全同步?我正在考虑集中部署应用程序,并使用一个工具来同步SQL Server数据库,另一个工具来保持Sharepoint服务器在两个相同环境中的两个虚拟机之间保持同步。还有什么可以帮助实现这一点的吗?
谢谢
发布于 2010-11-26 22:43:09
这对于SharePoint开发来说是一个非常棘手的问题。
就SQL Server而言(对于非SharePoint的内容),您可以使用SQL server中提供的工具来同步您的数据库。例如,复制数据库向导,或者如果您需要完成自定义工作,您甚至可以编写自己的SSIS包。
不过,SharePoint是另一回事。你不能仅仅通过复制数据库来将网站集/ web应用程序从一台服务器同步到另一台服务器,这是行不通的(出于许多原因,但主要是因为当你在服务器上创建web应用程序时,它会使用GUID作为应用程序ID来创建数据库。该GUID在数据库中的所有位置都会使用,如果你尝试更改它,表之间的所有链接都会断开)。SharePoint数据库的结构没有文档记录,MS建议不要手动修改它。老实说,即使你成功地从SQL server同步了你的数据库,你也会遇到其他问题,因为你所做的定制并不都会保存到数据库中(很多东西都会被保存到12个hive中)。
所以归根结底就是你想要实现的目标。
如果您正在尝试同步自定义设置(即内容类型、列表模板、web部件等)都是经过编码的。我建议您只从您的开发环境中构建WSP包,并在每次需要同步时部署它们。
如果您仅尝试同步数据(即列表项),则可以使用备份/恢复解决方案(您可以在管理中心找到)。请注意,如果您有定制,那么它并不是非常可靠。它在开箱即用的网站上工作得很好,但一旦你使用自己的列表模板等,恢复它可能会很棘手。
您还可以编写使用web services或Content Deployment API进行同步的代码,看看它是否适合您的需要。
您还可以查看将为您完成全部或部分工作的工具。Here is one
所以基本上,无论你决定怎么做,它都不会像你想象的那么简单。DEV / TEST / PROD环境同步问题是SharePoint开发的典型问题。
我开发了一个高度定制的SharePoint web应用程序,我们找到的最好的解决方案是:
在任何服务器之间同步列表
https://stackoverflow.com/questions/4281616
复制相似问题