Come creare una tabella senza disinstallare e reinstallare il modulo?
-
16-10-2019 - |
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?
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.