モジュールをアンインストールして再インストールせずにテーブルを作成する方法は?
-
16-10-2019 - |
質問
テーブルの作成に使用されるモジュールとインストールファイルがあります。
私の要件によれば、同じインストールファイルに別のテーブルを追加する必要があります。私はそれを使用することを知っています hook_schema()
n数のテーブルを作成できます。
ただし、テーブルを作成するには、アンインストールして再インストールする必要があります。これを使用すると、既存のデータが失われるため、これを行うことは想定されていません。
モジュールをアンインストールして再インストールせずにテーブルを作成する方法はありますか?
解決
このリンクは私の質問に答えました: テーブルの更新:hook_update_n()関数.
例えば:
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']);
}
?>
そして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;
}
?>
他のヒント
hook_install() モジュールが最初にインストールされた場合にのみ呼び出されます。その後、 hook_install()
モジュールを最初にアンインストールする場合にのみ呼び出されます。
モジュールを更新するときは、実装する必要があります hook_update_n(), 、常に実行されますモジュールは更新されます。同時に、の実装 hook_schema() モジュールを初めてインストールする人のために、モジュールから使用されるすべてのスキーマを含めるために更新する必要があります。
所属していません drupal.stackexchange