モジュールをアンインストールして再インストールせずにテーブルを作成する方法は?

drupal.stackexchange https://drupal.stackexchange.com/questions/14204

  •  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() モジュールを初めてインストールする人のために、モジュールから使用されるすべてのスキーマを含めるために更新する必要があります。

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top