Base de datos Drupal
Contenidos
Drupal es un sistema de gestión de contenidos (CMS) popular y muy utilizado. Este artículo expone al lector las soluciones de bases de datos MySQL para Drupal, junto con otras como PostgreSQL y SQLite, y continúa con los mecanismos de almacenamiento en caché.
Una creencia común que encuentro entre los desarrolladores es que si hacen de Drupal su carrera, están obligados a quedarse atascados con una tecnología y sólo la pila LAMP. Yo también pensaba así cuando empecé a desarrollar Drupal hace siete años. Pero la variedad de proyectos en los que trabajé pronto desmintió ese mito.
Sí, definitivamente es cierto que la pila LAMP no es lo único con lo que se trabaja cuando se está en Drupal. Necesitas ser más que un simple desarrollador PHP para explorar los salvajes, salvajes caminos del mundo Drupal. Un pequeño vistazo al lado de la base de datos de esta increíble plataforma CMS lo revelará.
MySQL es ideal como base de datos principal para Drupal, porque el núcleo de Drupal está construido sobre la suposición de que se desplegará en una pila LAMP finamente ajustada. Incluso la capa de caché en Drupal almacena sus datos en tablas MySQL. La capa de abstracción de base de datos de Drupal facilita que la base de datos subyacente sea reemplazada por cualquier otra, siempre que exista un controlador implementado para ella y una extensión PHP que conecte la capa PHP con el motor de base de datos. La capa de abstracción de bases de datos de Drupals usa la API de bases de datos PDOs (objetos de datos PHP) y por lo tanto deriva mucha de su semántica y sintaxis de ella. Esta capa también pone en un montón de controles de seguridad, las mejores prácticas y optimizaciones. Por lo tanto, nunca se debe pasar por alto en cualquier esfuerzo de personalización. La implementación de la base de datos de Drupals también soporta una configuración maestro-esclavo para un mayor rendimiento.
Controlador de base de datos Drupal
estamos en el proceso de mover el sitio de un cliente de Drupal a Kentico y con la esperanza de acelerar algunos de la creación de contenidos mediante la importación de datos para un tipo de contenido personalizado. No tengo acceso de desarrollo al sitio Drupal para hacer nada en PHP, sólo tengo una exportación completa de la base de datos que hemos restaurado en nuestro entorno MSSQL.
He estado mirando a través de la base de datos y tratando de ingeniería inversa cómo se almacena esta información, pero es muy complicado en comparación con las exportaciones que hemos utilizado de otras plataformas CMS. Hasta ahora, por lo que puedo ver, necesito al menos usar una combinación de datos de la tabla node y las tablas field_data_. Por ejemplo, en Drupal hay un tipo de contenido personalizado para premio, así que estoy mirando las tablas de datos que empiezan por field_data_field_award_, pero parece que hay que unirlas a algo más ya que no contienen los datos en sí.
El servidor mysql de Drupal ha desaparecido
Construir una base de datos desde cero con MySQL requiere aprender el lenguaje SQL y utilizar la línea de comandos o un software “front-end” para crear y rellenar tablas manualmente. Este enfoque requiere que los usuarios se sientan más cómodos escribiendo código y utilizando entornos orientados al uso de código, en lugar de interfaces gráficas fáciles de usar.
Crear una base de datos implica una gran cantidad de trabajo que no conduce directamente a una “cosa” accesible desde la web al final. Una base de datos es un backend; para que esté disponible en la web, también tiene que desarrollar una interfaz de usuario utilizando algún otro lenguaje de programación, o averiguar cómo importar sus datos en un sistema que proporcione dicha interfaz.
Trabajar con Drupal le ofrece la personalización flexible de construir una base de datos desde cero, combinada con la capacidad nativa de mostrar contenido en línea, junto con la capacidad de desarrollar fácilmente sus propias consultas e interfaces para los datos sin escribir ningún código personalizado.
Versión php de Drupal 9
Cuando se diseña un sitio web en Drupal se suele elegir una base de datos relacional para almacenar los datos de un sitio web. MySQL es un buen ejemplo de ello. Pero desde el momento en que un sitio web tiene muchos datos, con una gran cantidad de campos, una base de datos relacional ya no es lo suficientemente performante. En tal situación es interesante elegir una base de datos NoSQL, como MongoDB. Pero, ¿cuáles son exactamente las grandes diferencias entre una base de datos relacional y una NoSQL? Nos gustaría explicárselo.
Al instalar un sitio web Drupal, se elige por defecto un sistema de gestión de base de datos relacional (RDBMS). Normalmente se elige una base de datos MySQL, pero otras bases de datos relacionales disponibles para Drupal son MariaDB, SQLite y PostgreSQL.
En un RDBMS, una tabla puede tener una relación con la segunda tabla. Por ejemplo, una tabla “ciudades” puede tener una referencia a la tabla “países” mediante una clave foránea, una clave que hace referencia a otra tabla.
Al crear campos en un tipo de contenido, se crean diferentes tablas en la base de datos. Por ejemplo, para el tipo de contenido ‘Persona’, con los campos ‘campo_nombre_persona’, ‘campo_email_persona’ y ‘campo_pais_persona’, se encontrarán tres tablas en la base de datos MySQL.