database - fetchfield - drupal static queries
Cómo combinar los cambios de la base de datos Drupal (4)
Al comprometer parches de volcados de bases de datos, ¿quiere decir tomar un extracto completo de la base de datos y comprometerlo después de cada cambio?
¿Qué tal una copia maestra de la base de datos? Extraiga todas las tablas, vistas, sps, etc ... en archivos individuales, colóquelos en svn y realice las ediciones de fusión en los objetos individuales.
Actualmente usamos un repositorio SVN para garantizar que todos los entornos locales se mantengan actualizados. Sin embargo, el desarrollo del sitio web de Drupal es un poco más complicado ya que cualquier código personalizado que escriba (por ejemplo, código PHP escrito para un cuerpo de nodo) se almacena en el DB y los cambios no son reconocidos por la copia de trabajo del SVN.
Hay un par de desarrolladores que están trabajando actualmente en la misma área de un sitio Drupal, pero no estamos seguros de cómo combinar mejor nuestros cambios locales en la base de datos Drupal. Los parches comprometidos de volcados de bases de datos parecen torpes en el mejor de los casos y es muy probable que sean ineficientes y propensos a errores para este propósito.
¡Se agradece cualquier sugerencia sobre cómo abordar este problema!
Si está poniendo código php en su base de datos, entonces lo está haciendo mal. Algunas cosas están dentro de la base de datos como vistas y campos cck más algunas configuraciones. Pero si coloca el código php dentro del cuerpo del nodo, está creando un gran problema de mantenimiento del código. Realmente debería usar la API y los ganchos en su lugar. Crea módulos en lugar de hacks feos con eval etc.
Todo lo que se ha dicho anteriormente es cierto y un buen consejo. Para responder a su pregunta práctica, hay una serie de módulos recientes que podría utilizar para transportar los cambios realizados por los distintos desarrolladores.
Los módulos de "Características" son una cura para el problema descrito de Drupal, que a menudo proporciona buenas características, aunque almacena muchas configuraciones y estructura en el DB. Este módulo le permite capturar una característica y emitirla como un pseudo-módulo (califica como un módulo con .info y archivos de código y todo). Así es como funciona:
- Seleccionar funcionalidad / característica para exportar
- El módulo analiza los módulos, los archivos, el contenido de la base de datos que se requiere para reconstruir esa característica en otra parte
- El módulo crea un pseudo-módulo que contiene las instrucciones en el n. ° 3 y lo emite todo (incluso SQL para reconstruir las cosas en el DB) en un paquete de módulos (así como también establece las dependencias para otros módulos requeridos)
- Instale el pseudo-módulo en su nuevo sitio y habilítelo
- El pseudo-módulo replica la característica que exportó reconstruyendo datos de DB y todo
Y puedes decirle a tu jefe que lo hiciste todo manualmente con un enfoque preciso para evitar incluso un error;) Espero que esto ayude - http://drupal.org/project/features
Desafortunadamente, la implementación / actualización de la base de datos es uno de los puntos débiles de Drupals. Consulte esta pregunta y respuestas , así como esta para obtener algunas sugerencias sobre cómo lidiar con ella.
En cuanto a CCK, puedes encontrar algunos consejos aquí .
En cuanto al código php en el contenido, estoy de acuerdo con googletorp en que debes evitar hacer esto. Sin embargo, si por alguna razón tienes que hacerlo, puedes intentar reducir el código a una llamada a función simple. Por lo tanto, tendría la función en sí misma en un módulo (y esto se rastrearía a través de SVN). Pero de todos modos, está a un paso de eliminar la necesidad del código en línea de todos modos ...