Перенос данных Umbraco от сайта развитие сайта программно

Я нахожусь в ситуации, когда мне было поручено сделать приложение или расширение для Umbraco, что делает бэкэнд-пользователей в состоянии сделать миграцию своих изменений на сайте разработки на живой сайт. Эта миграция должна происходить один раз в день или когда бэкэнд-пользователи нажимают кнопку в бэкэнде.

Я знаю, что Umbraco предлагает это в пакете курьера, но, по-видимому, это не работает достаточно хорошо для этого случая.

еще несколько подробности:

разработка и живой сайт находятся на одном сервере, а также их базы данных. Данные просто нужно будет перенести из одной папки в другую и то же самое с таблицами в базе данных.

Как я вижу, есть два способа сделать это.

1) Вы делаете полную миграцию, где вы в основном делаете демонтаж живой базы данных и обновляете ее до новой версии. Затем вы копируете все файлы, которые вам нужны, как что ж.

2) вы создаете пакет, содержащий типы документов и так далее вы изменили на сайте разработчика и загрузить этот пакет на сайте live.

проблема с номером 1 заключается в том, что, похоже, вам нужно переиздать весь сайт, когда вы сделали передачу. Насколько я понял, вы можете сделать это с помощью веб-сервиса, но я предпочел бы использовать консольное приложение.

мой вопрос:

есть ли способ создавайте пакеты программно и загружайте их таким же образом или как лучше всего выполнить эту миграцию программно?

любые предложения были бы очень признательны, поскольку я в недоумении, как это сделать:)

редактировать

Я фактически сделал полное зеркальное отображение в том смысле, что я использовал Robocopy для передачи всех файлов, которые были изменены в папках, а затем я сделал резервную копию сайта разработки с помощью команды SQL, а затем я восстановил ее в живой базе данных с помощью команды RESTORE SQL.

несколько настроек, которые необходимо выполнить в командах SQL, но он работает гладко, и полная передача занимает до 10 секунд в зависимости от количества файлов, которые были изменены.

одна последняя вещь. Если вы хотите, чтобы изменения были видны, вам нужно перезагрузить Umbraco. Это можно сделать, изменив web.файл конфигурации, вручную или путем установки LastWriteTime программно.

1 ответов


вы всегда можете создать usercontrol, который будет обрабатывать переиздание всего сайта для вас, это вы можете вызвать из своего консольного приложения.

вы также можете присоединиться к Курьер 2 бета программа, которая действительно достаточно хороша (для функций в любом случае, я не тестировал ее сам).

другим маршрутом может быть предложение всех узлов в качестве XML-канала и использование функции планирования CMSImport для переноса узлов автоматически.

Это сложный, есть много вариантов, нет серебряной пули еще. Я очень надеюсь, что Courier 2 будет идеальным для этого и с нетерпением жду его выхода.