www with whats what update tutorials learn features advantages version-control web-applications content-management-system

version control - with - ¿Cómo haces una aplicación con contenido administrado?



what''s git (3)

Mantenga todo en la base de datos y otorgue a cada transacción al DB una marca de tiempo. De esta forma puede mantener copias de seguridad de bases de datos estándar y cargar el contenido del sitio en la fecha que desee si sucede lo peor.

Tenemos una aplicación web que contiene un montón de contenido que el operador del sistema puede cambiar (por ejemplo, noticias y eventos). Ocasionalmente publicamos nuevas versiones del software. El software está siendo etiquetado y almacenado en subversión. Sin embargo, estoy un poco desconcertado sobre cómo controlar mejor la versión del contenido que puede cambiar de forma independiente. ¿Cuáles son algunos de los mecanismos que utilizan las personas para asegurarse de que el contenido se almacena y se versione de forma tal que el sitio se pueda recrear o, como mínimo, se pueda controlar?


Supongo que parte de la respuesta depende de qué CMS esté utilizando y cómo esté diseñada su aplicación web, pero, en general, consideraría los datos como noticias o eventos como "contenido". En otras palabras, no es parte de su aplicación: son los datos que procesa su aplicación.

Por supuesto, habrá problemas de versiones entre su código CMS y su código de aplicación. Puede gestionar esto definiendo la interfaz entre los dos. Personalmente, publicaría los datos en la aplicación web como XML, lo que le da la posibilidad de usar el esquema XML para definir exactamente qué se debe producir el CMS y qué debe esperar procesar la aplicación web.

Esto debería significar que la mayoría de los cambios en la aplicación web se pueden realizar sin una alteración correspondiente en la prestación de los datos. Cuando los cambios de funcionalidad lo requieren, puede crear una nueva versión del esquema y seguir progresando. En este escenario, verificaría el esquema con el código de la aplicación web, pero YMMV.

No es fácil, y se vuelve más complicado nuevamente si necesita campos de datos adicionales en su CMS. Espere planificar un proceso de lanzamiento bastante complejo (también dependiendo de qué tan complejo sea su escenario Dev-Test-Acceptance-Production).

Si no está usando un CMS, entonces debe considerarlo. (Por supuesto, si la operación es muy pequeña, aún puede caer en la categoría donde hacerlo a mano es aceptable.) Simplemente poner los datos sin procesar en un sistema de control de versiones no resuelve el problema; necesita poder controlar el formato en el que sus datos se publican en la aplicación web. Casi con certeza, este formato debe ser algo destinado al consumo por software, y por lo tanto no suele ser adecuado para la edición manual por parte del tipo de personas que escriben noticias o eventos.


Cuando identifica dos conjuntos de archivos que tienen su propio ciclo de vida (archivos de software en un lado, "noticias y eventos" en el otro), usted sabe que:

  • no puedes versionarlos juntos al mismo tiempo
  • no deberías poner la misma etiqueta

Debe guardar los archivos de "noticias y eventos" por separado (ya sea en el VCS o en una base de datos como sugiere Ian Jacobs, o en un sistema de administración de contenido CMS), y encuentre una manera de vincular el remolque (una identificación, una marca de tiempo, metaetiqueta, ...)

No olvide que no solo está hablando de dos conjuntos diferentes de archivos en términos de ciclo de vida, sino también de diferentes conjuntos de archivos en términos de su propia naturaleza:

Considere la terminología introducida en esta pregunta SO: " ¿Es la gestión de activos un superconjunto del control de la fuente? " Por S.Lott

  • Archivos de software: información de infraestructura , es decir, "que representa el procesamiento del activo de información empresarial". Su código es parte de ese activo y es administrado por un VCS (Sistema de control de versiones), como parte de la disciplina de gestión de la configuración.
  • "noticias y eventos": información empresarial , es decir, datos (no procesamiento); esto a menudo se divide entre Administradores de contenido y Bases de datos relacionales.

Entonces, no todo debería terminar en Subversion.