独自のスキーマを実装する独自のモジュールがあります。ここで、スキーマによって提供されるテーブルに列を追加します。これは、hook_update_N()
およびdb_add_field()
を介して実行する予定です。
私の質問は、基本的にこの質問のタイトルが何であるかです。スキーマに新しい列を追加した後、新しい列またをモジュールのhook_schema()
実装内に配置する必要がありますか?例(mynewcolumn
という名前の列をモジュールmymodule
のスキーマに追加します):
_function mymodule_update_6000() {
$ret = array();
db_add_field($ret, 'mymodule', 'mynewcolumn', array(
'description' => t('This is my new column'),
'type' => 'text',
'size' => 'big',
'not null' => FALSE
));
return $ret;
}
_
この時点で、mynewcolumn
をmymodule_schema()
内に配置しますか?または、mymodule_update_6000()
は適切なインストールとアンインストールを完全に処理しますか?
hook_update_N()
はモジュールの更新時にのみ使用され、hook_schema()
とhook_install()
はモジュールのインストール時にのみ使用されます。モジュールをインストールするユーザーがいるため、データベースフィールドもhook_schema()
に追加する必要があります。