Pregunta

Tengo un módulo y un archivo de instalación que se utiliza para crear una tabla.

Según mi requisito, necesito agregar otra tabla en el mismo archivo de instalación. Sé que al usar hook_schema() Podemos crear n número de tablas.
Pero necesitamos desinstalar y reinstalar nuevamente para crear las tablas. Si uso esto, mis datos existentes se perderán, por lo que no debo hacer esto.

¿Hay alguna forma de crear una tabla sin desinstalar y reinstalar el módulo?

¿Fue útil?

Solución

Este enlace respondió a mi pregunta: Tablas de actualización: Hook_update_n () Funciones.

Por ejemplo:

En Drupal 7:

<?php
/**
 * Create new database table {mytable2}.
 */
function mymodule_update_7101() {
  $schema['mytable2'] = array(
     // table definition array goes here
  );
  db_create_table('mytable2', $schema['mytable2']);
}
?>

y en Drupal 6:

<?php
/**
 * Create new database table {mytable2}.
 */
function mymodule_update_6101() {
  $schema['mytable2'] = array(
     // table definition array goes here
  );
  $ret = array();
  db_create_table($ret, 'mytable2', $schema['mytable2']);
  return $ret;
}
?>

Otros consejos

Hook_install () se llama solo cuando el módulo se instala por primera vez; después, hook_install() Se llamará solo si primero desinstala el módulo.

Cuando actualiza un módulo, debe implementar Hook_Update_n (), que se ejecuta todas las veces que se actualiza el módulo. Al mismo tiempo, la implementación de Hook_schema () Debe actualizarse para incluir todo el esquema utilizado desde el módulo, para quién instala el módulo por primera vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top