web-dev-qa-db-ja.com

モジュールのインストール中にデータベーステーブルにコンテンツを追加する

カスタムモジュールを作成し、「。install」ファイルで、hook_schema()を使用してテーブルを作成しました。

エラーメッセージに関連付ける必要がある約90のエラーコードがあります。

モジュールのインストール中にこれらの値をテーブルに入力する最も効果的な方法は何ですか?

ありがとうございました!

2
Ebpo

hook_install()を実装する代わりに、モジュールが実行前にこれらのデータがデータベースに存在することを確認する必要がある場合は、 hook_enable() を実装できます。これらのフックの違いは、モジュールのインストール時にhook_install()が1回実行されることです。 hook_enable()は、モジュールが有効なときに常に実行されます。これは、モジュールがインストールされている場合にも発生します。 hook_enable()を使用するには、データを書き込む前に、まずデータベースにデータが存在しないことを確認する必要があります。
実装hook_enable()は、フォーラムモジュールが分類法ボキャブラリーを作成するために行うこと、およびそれが使用する分類法参照フィールドです。 ( forum_enable() を参照してください。)

データベースに挿入する値が多すぎる場合は、別の方法を見つける必要があります。実行に時間がかかりすぎるコードはPHPタイムアウト、そして、コードはデータ挿入を完了しません。
代替方法は、 バッチ操作 、または キュー操作 を使用することです。

3
kiamlaluno

hook_install() を使用して値を挿入する必要があります

hook_install() AP​​Iページから:

モジュールが hook_schema() を実装している場合、このフックが起動される前にデータベーステーブルが作成されます。

コード:

function MYMODULE_install() {
  // DB Insert code here.
}
2
subhojit777