2017-03-10 2 views
0

J'aidais un ami à migrer son WordPress vers AWS. Tout le WordPress a été exporté par lui en utilisant WPClone et je vais l'importer en RDS (Aurora). Je ne suis pas un pro DB et je ne connaissais que les bases de MySQL. J'essayais de restaurer une base de données mais pendant la restauration j'ai rencontré ERROR: ERROR 1215 (HY000): Cannot add foreign key constraint. J'ai exécuté show engine innodb status et vérifié le LATEST FOREIGN KEY ERROR et c'est ce que j'ai eu mais je n'ai aucune idée comment résoudre ceci.ERREUR: ERREUR 1215 (HY000): Impossible d'ajouter une contrainte de clé étrangère

------------------------ 
LATEST FOREIGN KEY ERROR 
------------------------ 
2017-03-10 11:22:06 2b87437cb700 Error in foreign key constraint of table clientdb/wp_supsystic_ss_project_networks: 
FOREIGN KEY (`project_id`) REFERENCES `wp_supsystic_ss_projects` (`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8: 
Cannot resolve table name close to: 
(`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 

aide serait grandement appréciée!

Edit: Voici les create table pour wp_supsystic_ss_networks, wp_supsystic_ss_project_networks et wp_supsystic_ss_projects:

CREATE TABLE `wp_supsystic_ss_networks` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) NOT NULL, 
    `url` varchar(255) NOT NULL, 
    `class` varchar(255) NOT NULL, 
    `brand_primary` varchar(7) NOT NULL DEFAULT '#000000', 
    `brand_secondary` varchar(7) NOT NULL DEFAULT '#ffffff', 
    `total_shares` int(11) unsigned DEFAULT '0', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; 

CREATE TABLE `wp_supsystic_ss_project_networks` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `project_id` int(11) unsigned DEFAULT NULL, 
    `network_id` int(11) unsigned DEFAULT NULL, 
    `position` int(11) unsigned DEFAULT '0', 
    `title` varchar(255) DEFAULT NULL, 
    `text` varchar(255) DEFAULT NULL, 
    `tooltip` varchar(255) DEFAULT NULL, 
    `text_format` varchar(255) DEFAULT NULL, 
    `use_short_url` bit(1) DEFAULT NULL, 
    `icon_image` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `FK__wp_supsystic_ss_projects` (`project_id`), 
    KEY `FK__wp_supsystic_ss_networks` (`network_id`), 
    CONSTRAINT `FK__wp_supsystic_ss_networks` FOREIGN KEY (`network_id`) REFERENCES `wp_supsystic_ss_networks` (`id`), 
    CONSTRAINT `FK__wp_supsystic_ss_projects` FOREIGN KEY (`project_id`) REFERENCES `wp_supsystic_ss_projects` (`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 

CREATE TABLE `wp_supsystic_ss_projects` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `settings` text NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 
+0

pouvez-vous publier le script 'create table' pour les deux tables dans le contexte. –

+0

Bonjour @RavinderReddy! J'ai mis à jour ma question. Je vous remercie! – sedawkgrep

+0

Si 'project_networks' est une table de correspondance many: many, voir le conseil [_here_] (http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table) - parmi d'autres conseils, se débarrasser si' id' et Ont 'PRIMARY KEY (project_id, network_id)' et 'INDEX (network_id, project_id)'. –

Répondre

0

Deux problèmes:

  1. Créer des tables dans cet ordre: tables enfant, table parent (avec l'étranger clés). Remplacer les instructions CREATE TABLE:
    • wp_supsystic_ss_projects
    • wp_supsystic_ss_networks
    • wp_supsystic_ss_project_networks.
  2. La table enfant wp_supsystic_ss_networks n'existe pas dans le script.