Я нахожусь в ситуации, когда мне было поручено создать приложение или расширение для Umbraco, которое позволяет внутренним пользователям выполнять миграцию своих изменений на сайте разработки на действующий сайт. Предполагается, что эта миграция происходит один раз в день или когда бэкэнд-пользователи нажимают кнопку в бэкэнде.
Мне известно, что Umbraco предлагает это в пакете Courier, но, видимо, для этого случая он работает недостаточно хорошо.
Еще несколько деталей:
Сайт разработки и живой сайт находятся на одном сервере, как и их базы данных. Данные просто нужно будет перенести из одной папки в другую, и то же самое с таблицами в базе данных.
Как я вижу, есть два способа сделать это.
1) Вы выполняете полную миграцию, где вы в основном разбираете действующую базу данных и обновляете ее до новой версии. Затем вы также копируете все нужные вам файлы.
2) Вы создаете пакет, содержащий типы документов и т. Д., Который вы изменили на своем сайте разработчика, и загружаете этот пакет на действующий сайт.
Проблема с номером 1 заключается в том, что, по-видимому, вам необходимо переиздать весь сайт после завершения передачи. Насколько я понял, вы можете сделать это с помощью веб-службы, но я бы предпочел, чтобы вместо этого я использовал консольное приложение.
Тогда у меня вопрос:
Есть ли способ создавать пакеты программным способом и загружать их таким же образом, или каков был бы наилучший способ достичь этой миграции программно?
Любые предложения будут высоко оценены, так как я в некотором затруднении из-за способа сделать это:)
EDIT
Я фактически закончил полное зеркалирование в том смысле, что использовал Robocopy для передачи всех файлов, которые были изменены в папках, а затем я сделал резервную копию сайта разработки с помощью команды SQL, а затем восстановил в действующей базе данных с помощью команды RESTORE SQL.
В командах SQL необходимо выполнить несколько настроек, но они работают без сбоев, и полная передача занимает до 10 секунд в зависимости от количества файлов, которые были изменены.
И последнее. Если вы хотите, чтобы изменения были видны, вам нужно перезагрузить Umbraco. Это можно сделать, изменив файл web.config вручную или установив его LastWriteTime программно.