これがcleanetica_advanced.installファイルです(私たちが取り組んでいるサイトの詳細を含む「カスタム」モジュールの):
<?php function cleanetica_advanced_schema(){ $ schema ['video'] = array( 'description' => 'HTMLタイトルのビデオ'、 'fields' => array( 'id' => array( 'description' => 'ビデオテーブルの主キー'、 'type' => ' serial '、 ' unsigned '=> TRUE、 ' not null '=> TRUE、 )、 ' urlinfo '=> array( 'description' => 'ビデオを参照する文字列'、 'type' => 'varchar'、 'length' => '255'、 ' not null '=> TRUE )、 ' title '=> array( ' description '=>'ビデオのタイトル。管理部分でのみ使用されます '、 'type' => 'text'、 'size' => 'medium'、 'not null' => TRUE )、 'richtitle' => array( 'description' => 'ビデオのHTML形式のタイトル'、 'type' => 'text'、 'size' => 'medium'、 'not null' => TRUE )、 )、 '主キー' => array( 'id ')、 ); return $ schema; } function cleanetica_advanced_update_1(){ drupal_install_schema( 'cleanetica_advanced'); }
「ビデオ」データベーステーブルと関連するものを管理するために、別のモジュールを作成する方が良いと思います。
問題は、「ビデオ」DBテーブルをすでに作成していることです。テーブルを他のモジュールに移動/転送するにはどうすればよいですか?
最も簡単な方法は、既存のモジュールを完全にアンインストールし(無効にするだけでなく)、スキーマ定義を古いものから新しいものに切り取り、両方のモジュールを有効にすることです。アンインストールするとテーブルが削除され、インストールすると他のモジュールからテーブルが追加されます。
また、現在のモジュールからcleanetica_advanced_update_1()
関数を削除することもできます。これをオフのままにすると、いくつかの興味深い不整合が発生する可能性があります。