Domanda

Ho un modulo e un file di installazione che viene utilizzato per creare una tabella.

Secondo la mia richiesta, ho bisogno di aggiungere un altro tavolo nello stesso file di installazione. So che utilizzando hook_schema() possiamo creare n numero di tavoli.
Ma abbiamo bisogno di disinstallare e reinstallare di nuovo per creare le tabelle. Se io uso questo, i miei dati esistenti andranno persi, quindi non dovrei fare questo.

C'è un modo per creare una tabella senza disinstallare e reinstallare il modulo?

È stato utile?

Soluzione

Questo collegamento ha risposto alla mia domanda: tabelle Aggiornamento:. Hook_update_N () funzioni

Ad esempio:

In 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']);
}
?>

e in 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;
}
?>

Altri suggerimenti

hook_install () viene chiamato solo quando prima installazione del modulo; Dopo di che, hook_install() sarà chiamato solo se prima disinstallare il modulo.

Quando si sta aggiornando un modulo, è necessario implementare hook_update_N () , che gestisce tutti i tempi il modulo viene aggiornato. Allo stesso tempo, l'attuazione di hook_schema () esigenze per essere aggiornati per includere tutti lo schema utilizzato dal modulo, per chi installa il modulo per la prima volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top