J'ai Drupal fonctionnant sur MariaDB 5.5.33. Lorsque j'exécute update.php (après la mise à niveau vers Drupal 7.28 depuis Drupal 6), j'obtiens une erreur:
Échec: PDOException: SQLSTATE [42S02]: table de base ou vue introuvable: 1146 La table 'webdb.location_country' n'existe pas: CREATE TABLE {location_country} (
code
CHAR (2) NOT NULL COMMENT 'Clé primaire: Code ISO de pays à deux lettres ',name
VARCHAR (255) NOT NULL DEFAULT' 'COMMENT' Full Country Name ', PRIMARY KEY (code
)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT' Data country managed by location.module. '; Array () indb_create_table () (ligne 2720 de /home/web/public_html/includes/database/database.inc).
Quand j'essaye d'exécuter la commande
CREATE TABLE {location_country} (
code
CHAR (2) NOT NULL COMMENT 'Primary Key: Two letter ISO Country Code',name
VARCHAR (255) NOT NULL DEFAULT '' COMMENT 'Full Country Name', PRIMARY KEY (code
)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT 'Données de pays gérées par location.module.';
dans phpMyAdmin, je reçois une erreur
# 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de '{location_country} (
code
CHAR (2) NOT NULL COMMENT' Clé primaire: Deux lettres IS 'à la ligne 1
Mais je n'ai pas pu découvrir où est le problème.
Étant donné que d'autres réponses (y compris celles qui ne sont en aucun cas liées au moteur InnoDB) aux questions sur cette exception PDOException sont marquées comme des doublons et redirigent vers celle-ci, je suppose que c'est l'endroit canonique pour les réponses à ce problème.
Je l'ai rencontré plusieurs fois lors de la désinstallation d'un module, et la table recherchée n'existe pas sur le site (car elle a été supprimée par accident, car il y a une faute de frappe dans la définition du schéma dans
.install
, ou pour une autre raison).Le moyen le plus simple de le résoudre consiste à exécuter
update.php
manuellement le script de mise à jour de la base de données ( ).Une fois votre site ressuscité, vous devez essayer de déterminer la cause première du problème et de le résoudre.
la source
Vous devrez supprimer les accolades autour du nom de la table lors de l'utilisation en tant que SQL brut.
par exemple:
la source
Il s'agit du même message d'erreur lors de la migration de Drupal 7 d'un site de développement vers un autre site de développement sur mon ordinateur portable. Après avoir vérifié les tables dans la base de données Drupal, j'ai constaté que le vidage sql complet n'était pas importé (en utilisant Adminer et l'option "From server", adminer.sql).
Recherchez par ordre alphabétique les tables de base de données Drupal 7 proches de la fin du vidage SQL: utilisateur * , vues * , formulaire Web * , plan de travail * , xmlsitemap * pour voir si tout a été importé.
J'avais l'habitude
drush sql-cli < database.sql
d'importer le vidage sql dans la base de données Drupal après avoir supprimé toutes les tables de base de données avecdrush sql-drop
.la source