Как вы CM приложение с управляемым контентом - PullRequest
3 голосов
/ 13 января 2009

У нас есть веб-приложение, которое содержит набор контента, который может изменить системный оператор (например, новости и события). Изредка мы публикуем новые версии программного обеспечения. Программное обеспечение помечается и хранится в Subversion. Тем не менее, я немного обеспокоен тем, как лучше управлять версиями контента, который может быть изменен независимо. Какие механизмы используют люди, чтобы убедиться, что контент хранится и версионируется таким образом, что сайт может быть воссоздан или по крайней мере контролируется версией?

Ответы [ 3 ]

1 голос
/ 14 января 2009

Когда вы идентифицируете два набора файлов, которые имеют свой жизненный цикл (программные файлы с одной стороны, «новости и события» с другой, вы знаете, что:

  • вы не можете одновременно создавать их версии
  • вы не должны ставить одну и ту же этикетку

Вам нужно отдельно сохранять файлы «новостей и событий» (либо в VCS, либо в БД, как предлагает Иан Джейкобс, либо в CMS - Система управления контентом), и найти способ связать буксир ( идентификатор, метка времени, мета-метка, ...)

Не забывайте, что вы говорите не только о двух разных наборах файлов с точки зрения жизненного цикла, но и о разных наборах файлов с точки зрения их самой природы:

Рассмотрим терминологию, введенную в этом вопросе SO " Является ли управление активами надмножеством контроля источников " S.Lott

  • программные файлы: Инфраструктурная информация , то есть "представляющая обработку информационного актива предприятия". Ваш код является частью этого актива и управляется VCS (системой контроля версий) как часть дисциплины управления конфигурацией.
  • "новости и события": Информация о предприятии , то есть данные (не обработка); это часто делится между контент-менеджерами и реляционными базами данных.

Так что не все должно заканчиваться в Subversion.

0 голосов
/ 18 января 2009

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

Конечно, между кодом CMS и кодом приложения будут проблемы с версиями. Вы можете управлять этим, определив интерфейс между ними. Лично я опубликую данные в веб-приложении в виде XML, что дает вам возможность использовать XML-схему для точного определения того, что требуется для создания CMS, и что веб-приложение должно ожидать для обработки.

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

Это не просто, и это снова усложняется, если вам нужны дополнительные поля данных в вашей CMS. Планируйте довольно сложный процесс выпуска (также в зависимости от сложности сценария Dev-Test-Acceptance-Production.)

Если вы не используете CMS, то вы должны рассмотреть это. (Конечно, если операция очень мала, она все равно может попасть в категорию, где это можно делать вручную.) Простое помещение необработанных данных в систему управления версиями не решает проблему - вам нужно иметь возможность контролировать формат, в котором ваши данные публикуются в веб-приложении. Почти наверняка этот формат должен быть чем-то, предназначенным для потребления программным обеспечением, и поэтому обычно не подходит для ручного редактирования теми людьми, которые пишут новости или события.

0 голосов
/ 13 января 2009

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

...