モジュールのカスタムテーブルを作成する必要がありますが、モジュールインストールテーブルが作成されません。
module.installファイル:
function bip_content_migration_schema() {
$schema['bip_migrate'] = array(
'description' => 'Storing content migration info from Joomla.',
'fields' => array(
'id' => array(
'description' => 'id',
'type' => 'serial',
),
'content_type' => array(
'description' => 'content type',
'type' => 'varchar',
'not null' => TRUE,
'length' => 255,
),
'imported_count' => array(
'description' => 'imported count',
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'to_import_count' => array(
'description' => 'to import count',
'type' => 'int',
'not_null' => TRUE,
),
'is_imported' => array(
'description' => 'is imported',
'type' => 'int',
'default' => 0,
),
),
'primary key' => array('id'),
'indexes' => array(
'id' => array('id'),
),
);
return $schema;
}
何が悪いのですか?
[〜#〜]編集[〜#〜]
.installファイルに関数を追加しました(テーマを省略できると思います)
function bip_content_migration_install() {
drupal_install_schema('bip_content_migration');
}
function bip_content_migration_uninstall() {
drupal_uninstall_schema('bip_content_migration');
}
しかし、再びテーブルは作成されません。
Drupal 7では、drupal_install_schema()
、またはdrupal_uninstall_schema()
を呼び出す必要はありません。これは、Drupalから自動的に実行されます。hook_schema()
とデータベーステーブルが作成されますDrupal 7のモジュールが多数あり、そのフックを実装して、データベーステーブルが作成されます。
データベーステーブルが作成されない原因として、次の2つが考えられます。
hook_schema()
実装を追加しましたモジュールをインストールして無効にし、コードを変更して再度有効にした場合、データベーステーブルは作成されません。モジュールの無効化は、モジュールのアンインストールとは異なります。アンインストールは、モジュールが無効になっているときに行われ、admin/modulesの[アンインストール]タブからアンインストールされます。
Drupalでエラーが発生するはずだったので、次の2つのケースは考慮しませんでした。
さらにデータベースがある場合は、正しいデータベースを確認していることを確認してください。
これは古いですがとにかく知っています。モジュールの変更re-enableを確認する場合は、まずモジュールを無効にしてアンインストールする必要があります。使用する
drush dre [モジュール]
モジュールを無効にします。 'system'テーブル名の列(drupalデータベース)でモジュール名を検索し、その特定の列を削除します。モジュールを有効にして再試行してください。テーブルが作成されます。