UIの[アンインストール]タブをクリックするか、Drushでモジュールをアンインストールしようとすると、次のエラーが発生します。
ドラッシュ:
SQLSTATE[42S02]: Base table or view not found:
1146 Table 'DATABASENAME.br_schedule' doesn't exist
Drupalログ:
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S02]:
Base table or view not found:
1146 Table 'DATABASENAME.br_schedule' doesn't exist:
SELECT base_table.vid AS vid,
base_table.id AS id FROM {br_schedule}
base_table LIMIT 1 OFFSET 0; Array ( ) in
Drupal\Core\Entity\EntityStorageBase->hasData()
(line 552 of MYSITEPATH/core/lib/Drupal/Core/Entity/EntityStorageBase.php).
私はbr_scheduleが何であるかわからないので、そのテーブルを再構築する方法がわかりません。 Businesses Rulesをインストールしましたが、br_scheduleモジュールが表示されません。
問題が見つかりました。データベースの更新が行われていません。 drushでupdatedb:statusを実行すると、次のようになります。
file_entity 8004 hook_update_n Fix entity field mismatches on the file type field.
business_rules_schedule entity type entity-update The Schedule entity type needs to be installed.
file entity type entity-update The File type field needs to be updated.
node entity type entity-update The node.field_zipcode field needs to be updated.
「ファイルタイプフィールドのエンティティフィールドの不一致を修正してください。」が失敗しているため、「business_rules_schedule」の更新は行われていません。
ビジネスルールをインストールして空のD8をスピンアップし、br_scheduleテーブルをエクスポートして、影響を受けるサイトにインポートしました。これでモジュールをアンインストールできます。
おそらく、@ kevinが言及する最も簡単な回避策は、 adminer をダウンロードするか、既存のphpmyadminを使用して、次の(または同様の)SQL command
CREATE TABLE br_schedule (
ID int
);
次に、アンインストールできるかどうかもう一度確認してください
注:防弾技術ではないので注意して使用してください。私は数回使用し、混乱したデータベースで壊れたアンインストールを完了することができましたが、mradcliffeとしてそれは同様に物事を台無しにするかもしれないと述べています。
Drush updbを実行する前に、「drush entity-updates」を実行してエンティティを作成するだけです。