2013-11-29 3 views
4

У меня есть несколько веб-сайтов Composite C1 CMS.Composite C1 - разработка локально, синхронизация с живым сайтом

Для редактирования их в настоящее время я использую веб-CMS на сайте.

Однако - я хотел бы обновить (код &) в Visual Studio локально - затем синхронизировать с Интернетом. Однако, если моя локальная копия старше этого онлайн (например, нетехнический клиент отредактировал что-то на реальном сайте) и I Web Deploy - он перейдет поверх нового файла на сервере.

Мне нужно решение, которое разработает новейшие изменения? Я не могу найти что-либо в Google или документах C1.

Как синхронизировать - желательно с помощью Web Deploy. Нужен ли мне какой-то контроль версий?

Есть ли наилучшая практика для этого - редактирование живого сайта через веб-интерфейс кажется немного dicey & медленным.

ответ

3

Общий ответ на этот тип сценария, кажется, использовать Package Creator. С этим вы можете разрабатывать локально, добавлять файлы, которые вы изменили в пакет, и установить этот пакет на реальном сайте. Это решение не совсем охватить все части вас вопрос, хотя и имеет некоторые ограничения:

  • Вы не можете выборочно добавлять содержимое в пакет. Это все страницы или без страниц.
  • Добавление типов данных прост, но для их последующего обновления требуется удалить тип данных (и данных) и воссоздать тип данных.

В моих пакетах работ хорошо работает для инкрементных обновлений сайта, если вы ограничиваете содержимое пакетов интерфейсом, например css, изображениями и т. Д.

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

Следует ли использовать систему контроля версий? Да! Во всех смыслах. Даже если вы не делитесь своим кодом с кем-либо, VCS - отличный способ познакомиться с Composite C1 с точки зрения файловой системы, так как вы можете тщательно отслеживать, какие файлы были изменены на диске, по мере вашего развития. Это знание имеет решающее значение, когда вы хотите постоянно добавлять функции на уже существующий веб-сайт и пинать - вам нужно знать, что нужно развернуть, и что не трогать.

Убедитесь, что вы читаете документацию на том, как Composite припадков в VCS: http://docs.composite.net/Configuration/C1-and-Version-Control

Я предполагаю, что ваши сайты используют для хранения данных XML (если вы, где с помощью SQL Data Store, ваш контент не будет переопределен при синхронизации).

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

Предположим, вы используете git, загрузите сайт целиком с веб-сервера производства и передайте всю проклятую вещь * своей основной ветке.

Затем вы создаете новую ветвь функции из этой фиксации и начинаете внесение изменений, которые хотите развернуть позже, и тщательно выполняйте свою работу по мере продвижения, убедившись, что вы выполняете только те изменения, которые необходимы для вашей функции. работа, к ветви функции.

Теперь вы готовы к развертыванию, и вы отключаете главную ветвь, а затем загружаете весь сайт и завершаете его мастером.

Затем вы объединяете ветвь функции в ведущую ветку и выполняете всю сложную работу, связанную с сшиванием, с изменениями с живого сайта. Там обязательно должны быть конфликты слияния, и именно там вам придется прыгать и сами решать, какой контент должен идти вживую.

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

Если вы используете SQL Data Store я предлагаю платить за инструмент, как Red гейта SQL Compare и SQL Data Compare или SQL Delta, сравнить базы данных Dev в базу данных производства, и ручной выбор сценариев SQL, которые могут быть применены к производственной базе данных по с развертыванием вашей функции.

* * Рассмотрите возможность использования файла .gitignore, чтобы избежать фиксации определенных файлов - обратитесь к docs за простой информацией.

+0

Спасибо! Чтобы прояснить и сделать это еще более сложным, на сайте есть пользовательский код MVC - под редакцией разработчика (A). Я разработчик (B) - я все редактирую. Существует также клиент (C), который нетехник, но редактирует контент и некоторую разметку. – niico

+1

Небольшое замечание об экспорте страниц в пакет :) Последняя версия Package Creator (> = 3.5.6) теперь позволяет экспортировать «деревья страниц», то есть любую страницу со всеми ее вспомогательными страницами. Щелкните правой кнопкой мыши на странице и выберите «Добавить эту страницу Tree to package Creator». – wysocki

+0

В моем сценарии я начинаю думать, что редактирование живого сайта через веб-интерфейс (с регулярными автоматическими резервными копиями) может быть самым простым способом? Однако поиск SQL - интересный угол для контента. – niico

Смежные вопросы