Lorsque je clique sur l'onglet Désinstaller dans l'interface utilisateur ou que j'essaie de désinstaller un module avec Drush, j'obtiens les erreurs suivantes:
Drush:
SQLSTATE[42S02]: Base table or view not found:
1146 Table 'DATABASENAME.br_schedule' doesn't exist
Journal 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).
Je n'ai aucune idée de ce qu'est br_schedule donc je ne sais pas comment reconstruire cette table. J'ai installé Businesses Rules mais je ne vois aucun module br_schedule.
Trouvé le problème. Mes mises à jour de base de données ne se produisent pas. Ran updatedb: statut avec drush et j'obtiens:
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.
"Correction des disparités de champ d'entité sur le champ de type de fichier." échoue donc la mise à jour "business_rules_schedule" ne se produit pas.
J'ai créé un D8 vierge avec les règles métier installées et j'ai exporté la table br_schedule et l'ai importée dans le site affecté. Maintenant, je peux désinstaller des modules.
La solution de contournement la plus simple, comme le mentionne @kevin, serait peut-être de télécharger adminer ou d'utiliser phpmyadmin existant si vous en avez et de créer ce tableau sans contenu exécutant ce qui suit (ou similaire) SQL command
CREATE TABLE br_schedule (
ID int
);
puis réessayez pour voir s'il peut désinstaller
REMARQUE: utilisez avec prudence ce n'est pas une technique pare-balles, je l'ai utilisée plusieurs fois et j'ai pu terminer des désinstallations cassées sur des bases de données foirées mais en tant que mradcliffe mentionne que cela pourrait aussi gâcher les choses.
Exécutez simplement "drush entity-updates" pour créer les entités avant d'exécuter drush updb.