Это очень сложная проблема для разработки SharePoint.
Что касается SQL-сервера (для сторонних разработчиков), вы можете просто синхронизировать базы данных, используя инструменты, предоставляемые в SQL Server. Например, мастер копирования базы данных, или вы даже можете написать свой собственный пакет служб SSIS, если вам нужно выполнить пользовательскую работу.
SharePoint - это другое дело. Вы не можете просто синхронизировать семейства сайтов / веб-приложения с одного сервера на другой, просто скопировав базы данных, это не будет работать (по многим причинам, но в основном потому, что при создании веб-приложения на сервере он создает базы данных с использованием GUID как идентификатор приложения. Этот GUID используется везде в базе данных, и все ссылки между таблицами будут разорваны, если вы попытаетесь изменить его). Структура базы данных SharePoint не документирована, и MS рекомендует не изменять ее вручную. И, честно говоря, даже если вам удастся синхронизировать ваши базы данных прямо с SQL-сервера, вы столкнетесь с другими проблемами, потому что не все настройки, которые вы делаете, сохраняются в базе данных (многие вещи уходят в 12 куст).
Итак, все сводится к тому, чего вы пытаетесь достичь.
Если вы пытаетесь синхронизировать настройки (например, типы контента, шаблоны списков, веб-части и т. Д.), Которые были закодированы. Я бы порекомендовал вам просто создавать пакеты WSP из среды разработки и развертывать их каждый раз, когда вам нужно синхронизировать.
Если вы пытаетесь только синхронизировать данные (то есть элементы списка), вы можете использовать решение для резервного копирования / восстановления (вы найдете его в центре администрирования). Обратите внимание, что это не слишком надежно, если у вас есть настройки, хотя. Он отлично работает на готовых сайтах, но его сложно восстановить после использования собственных шаблонов списков и т. Д.
Вы также можете написать код для синхронизации, используя веб-службы или API развертывания контента и посмотреть, соответствует ли он вашим потребностям.
Вы также можете посмотреть на инструменты, которые сделают всю или часть работы за вас. Вот один
Так что, в принципе, независимо от того, как вы решите это сделать, все будет не так просто, как вы ожидали. Проблема синхронизации среды DEV / TEST / PROD является классической для разработки SharePoint.
Я работаю над сильно настроенным веб-приложением SharePoint, и лучшее решение, которое мы нашли, было:
- Будьте очень дисциплинированны в нашем коде: выполняйте все настройки с помощью кода и создавайте пакеты WSP с этим кодом. Нет SharePoint дизайнера. После настройки страницы в конструкторе SharePoint вы ничего не сможете синхронизировать.
- Синхронизация списков между любыми серверами с использованием веб-сервисов