web-dev-qa-db-ja.com

hook_installのないモジュールにhook_update_Nを使用できますか?

私は、インストールファイルがないカスタムモジュールに取り組んでいますが、それでも多くのテーブルを使用しています。以前に作業した人は、データベーステーブルを手動で作成しました。次に、テーブルをさらに追加します。クエリを手動で実行してジョブを完了することができましたが、「Drupal」の方法を使用してそれを実行したいと考えました。それで、hook_installなしのモジュールにhook_update_Nを使用できるかどうか疑問に思っていましたか?

5
Binny

すべてのフックを実装する必要のあるモジュールはありません。あなたはhook_update_n()を使用することができ、hook_install()関数はうまくいっていません。

おそらく、1つの時点で、これらのテーブルにhook_schema()を定義する必要があります。 mysqlデータベースのanymysqlテーブル(定義済み)の「drupal」スキーマを取得する簡単なツールは スキーマモジュール です。 =。

  • スキーマドキュメント:各テーブルとフィールドの目的を説明するスキーマの埋め込みドキュメントのハイパーリンク表示。
  • スキーマ構造の生成:モジュールはライブデータベースを調べ、ライブデータベースに一致するすべてのテーブルのスキーマAPIデータ構造を作成します。
  • スキーマの比較:モジュールは、有効なすべてのモジュールによって宣言されたスキーマ構造とライブデータベース構造を比較し、欠落または不適切なテーブルを報告します。

MySQLユーザーへの注意:スキーマモジュールにはMySQL 5が必要です。以前のバージョンのMySQLでは、スキーマモジュールがデータベースの検査に使用するINFORMATION_SCHEMAデータベースをサポートしていません。

9
tenken