|
Erreur mysql.sql avec contrainte entre les tables |
|
Régulier
Inscrit: 31/01/2008 01:30
|
bonjour, voila nous avons créer un module en php, que nous voulons intégrer comme modules xoops. nous rencontrons déja un premier problème dans le fichier sql/mysql.php il semble que xoops n'arrivent pas a lire les contraintes dans le fichier mysql.sql. dans mon fichier xoops_version.php j'ai placer ceci :
$modversion['sqlfile']['mysql'] = "sql/mysql.sql";
$modversion['tables'] = array(
"FC_game_events_connexions",
"FC_game_events_events",
"FC_game_events_jeux",
"FC_game_events_jeux_users",
"FC_game_events_team_membres",
"FC_game_events_team",
"FC_game_events_users",
"FC_game_events_team_users_data",
);
Et dans le fichier mysql.sql
--
-- Structure de la table `FC_game_events_connexions`
--
CREATE TABLE `FC_game_events_connexions` (
`login` varchar(100) collate latin1_general_ci NOT NULL,
`token` varchar(47) collate latin1_general_ci NOT NULL,
`ip` varchar(60) collate latin1_general_ci default NULL,
`date_debut_session` int(11) default NULL,
`date_dernier_acces_session` int(11) default NULL,
PRIMARY KEY (`login`,`token`),
UNIQUE KEY `token_UNIQUE` (`token`),
UNIQUE KEY `login_UNIQUE` (`login`),
KEY `fk_connexsions_login` (`login`),
KEY `ip_unique` (`login`,`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `FC_game_events_connexions`
--
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_events`
--
CREATE TABLE `FC_game_events_events` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(45) collate latin1_general_ci default NULL,
`date_debut` timestamp NULL default NULL,
`date_fin` timestamp NULL default NULL,
`createur` int(11) NOT NULL,
`nom_jeu` varchar(100) collate latin1_general_ci NOT NULL,
`team_id` int(11) default NULL,
`commentaire` text collate latin1_general_ci NOT NULL,
`restreint_equipe` tinyint(1) default '0' COMMENT 'apply to other teams',
`display` tinyint(1) default '1' COMMENT 'apply to everybody',
`demande_de_match` tinyint(1) default '0',
PRIMARY KEY (`id`),
KEY `fk_FC_game_events_events_FC_game_events_jeux1` (`nom_jeu`),
KEY `fk_FC_game_events_events_FC_game_events_teams1` (`team_id`),
KEY `fk_FC_game_events_events_FC_game_events_users1` (`createur`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
--
-- Contenu de la table `FC_game_events_events`
--
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_jeux`
--
CREATE TABLE `FC_game_events_jeux` (
`nom_jeu` varchar(100) collate latin1_general_ci NOT NULL,
`description` text collate latin1_general_ci,
PRIMARY KEY (`nom_jeu`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `FC_game_events_jeux`
--
INSERT INTO `FC_game_events_jeux` VALUES ('Aion', 'un jeu');
INSERT INTO `FC_game_events_jeux` VALUES ('Battlefield Bad Company 2', 'un jeu');
INSERT INTO `FC_game_events_jeux` VALUES ('CS', 'un jeu');
INSERT INTO `FC_game_events_jeux` VALUES ('Waaah', 'un jeu');
INSERT INTO `FC_game_events_jeux` VALUES ('Woups', 'un jeu');
INSERT INTO `FC_game_events_jeux` VALUES ('Wow', 'un jeu');
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_jeux_users`
--
CREATE TABLE `FC_game_events_jeux_users` (
`nom_jeu` varchar(100) collate latin1_general_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`nom_jeu`,`user_id`),
KEY `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event2` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `FC_game_events_jeux_users`
--
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_team_members`
--
CREATE TABLE `FC_game_events_team_members` (
`team_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`valide` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`team_id`,`user_id`),
KEY `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even2` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `FC_game_events_team_members`
--
INSERT INTO `FC_game_events_team_members` VALUES (1, 1, 1);
INSERT INTO `FC_game_events_team_members` VALUES (1, 2, 1);
INSERT INTO `FC_game_events_team_members` VALUES (1, 3, 1);
INSERT INTO `FC_game_events_team_members` VALUES (2, 2, 1);
INSERT INTO `FC_game_events_team_members` VALUES (2, 3, 1);
INSERT INTO `FC_game_events_team_members` VALUES (3, 2, 1);
INSERT INTO `FC_game_events_team_members` VALUES (3, 3, 1);
INSERT INTO `FC_game_events_team_members` VALUES (4, 2, 1);
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_teams`
--
CREATE TABLE `FC_game_events_teams` (
`team_id` int(11) NOT NULL auto_increment,
`nom` varchar(100) collate latin1_general_ci NOT NULL,
`description` text collate latin1_general_ci,
`createur` int(11) NOT NULL,
`chef` int(11) NOT NULL,
`date_creation` timestamp NULL default NULL,
`lien_vocal` varchar(255) collate latin1_general_ci default NULL,
PRIMARY KEY (`team_id`),
UNIQUE KEY `nom_UNIQUE` (`nom`),
KEY `fk_FC_game_events_teams_FC_game_events_users1` (`createur`),
KEY `nom_INDEX` (`nom`),
KEY `fk_FC_game_events_teams_FC_game_events_users2` (`chef`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
--
-- Contenu de la table `FC_game_events_teams`
--
INSERT INTO `FC_game_events_teams` VALUES (1, 'The best', 'On est les meilleurs', 2, 2, '0000-00-00 00:00:00', NULL);
INSERT INTO `FC_game_events_teams` VALUES (2, 'Cat''s eye', 'En avant l''aventure !', 2, 2, '0000-00-00 00:00:00', NULL);
INSERT INTO `FC_game_events_teams` VALUES (3, 'Ma team !', 'azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop', 2, 2, '0000-00-00 00:00:00', NULL);
INSERT INTO `FC_game_events_teams` VALUES (4, 'Ma team !(3)', 'azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop', 2, 2, '0000-00-00 00:00:00', NULL);
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_users`
--
CREATE TABLE `FC_game_events_users` (
`user_id` int(11) NOT NULL auto_increment,
`login` varchar(100) collate latin1_general_ci default NULL,
`mdp` varchar(512) collate latin1_general_ci default NULL,
`mail` varchar(255) collate latin1_general_ci default NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `login_UNIQUE` (`login`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;
--
-- Contenu de la table `FC_game_events_users`
--
INSERT INTO `FC_game_events_users` VALUES (1, 'toto', 'a7102b267e67049289d53b0036c345cd', 'compte@de.test');
INSERT INTO `FC_game_events_users` VALUES (2, 'admin', '495ed4845515d52f29a95994b5924b3a', 'admin@admin.fr');
INSERT INTO `FC_game_events_users` VALUES (3, 'tata', '7e0f561b370cc58fa4fe04a766520a3d', 'test01@test01.fr');
-- --------------------------------------------------------
--
-- Structure de la table `FC_game_events_users_data`
--
CREATE TABLE `FC_game_events_users_data` (
`user_id` int(11) NOT NULL auto_increment,
`site` text collate latin1_general_ci NOT NULL,
`vocal` enum('Mumble','TeamSpeak 2','TeamSpeak 3','Skype','Ventrilo') collate latin1_general_ci NOT NULL,
`ipvocal` varchar(22) collate latin1_general_ci NOT NULL,
`serveurjeu` enum('Priver','Public') collate latin1_general_ci NOT NULL,
`ipserveur` varchar(22) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_id_UNIQUE` (`user_id`),
KEY `fk_FC_game_events_events_FC_game_events_users_data1` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
--
-- Contenu de la table `FC_game_events_users_data`
--
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `FC_game_events_connexions`
--
ALTER TABLE `FC_game_events_connexions`
ADD CONSTRAINT `fk_connexsions_login` FOREIGN KEY (`login`) REFERENCES `FC_game_events_users` (`login`) ON DELETE NO ACTION ON UPDATE CASCADE;
--
-- Contraintes pour la table `FC_game_events_events`
--
ALTER TABLE `FC_game_events_events`
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_jeux1` FOREIGN KEY (`nom_jeu`) REFERENCES `FC_game_events_jeux` (`nom_jeu`) ON DELETE NO ACTION ON UPDATE CASCADE,
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_teams1` FOREIGN KEY (`team_id`) REFERENCES `FC_game_events_teams` (`team_id`) ON DELETE NO ACTION ON UPDATE SET NULL,
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_users1` FOREIGN KEY (`createur`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE CASCADE;
--
-- Contraintes pour la table `FC_game_events_jeux_users`
--
ALTER TABLE `FC_game_events_jeux_users`
ADD CONSTRAINT `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event1` FOREIGN KEY (`nom_jeu`) REFERENCES `FC_game_events_jeux` (`nom_jeu`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event2` FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `FC_game_events_team_members`
--
ALTER TABLE `FC_game_events_team_members`
ADD CONSTRAINT `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even1` FOREIGN KEY (`team_id`) REFERENCES `FC_game_events_teams` (`team_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even2` FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `FC_game_events_teams`
--
ALTER TABLE `FC_game_events_teams`
ADD CONSTRAINT `fk_FC_game_events_teams_FC_game_events_users1` FOREIGN KEY (`createur`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
ADD CONSTRAINT `fk_FC_game_events_teams_FC_game_events_users2` FOREIGN KEY (`chef`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Contraintes pour la table `FC_game_events_users_data`
--
ALTER TABLE `FC_game_events_users_data`
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_users_data1` FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
Reponse de xoops après le clic installer le module
Can't create table './db346523038/#sql-30f_3351a.frm' (errno: 150)
Si je suprime les contraintes du fichier mysql.sql, le script fonctionne tres bien. Avez-vous une idée du problème, ou est ce que xoops n'arrive pas a lire les contraintes entre des tables au moment d'une installation . Dans l'attente d'une réponse, passer une bonne journée tout le monde.
Posté le : 17/11/2010 12:26
|
|
|
Re: Erreur mysql.sql avec contrainte entre les tables |
|
Team FrXoops
Inscrit: 14/05/2004 22:32
|
Bonjour: Peut etre le Citation :ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci Il faut peut être vérifier les paramètres de la base de données pour qu'elle accepte le innodb sinon il faut passer en myisam sans contraintes; JJDAI
Posté le : 17/11/2010 18:53
|
|
|
Re: Erreur mysql.sql avec contrainte entre les tables |
|
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
|
Pourquoi vous ne les mettez pas direct dans le create?
CREATE TABLE `FC_game_events_events` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(45) collate latin1_general_ci default NULL,
`date_debut` timestamp NULL default NULL,
`date_fin` timestamp NULL default NULL,
`createur` int(11) NOT NULL,
`nom_jeu` varchar(100) collate latin1_general_ci NOT NULL,
`team_id` int(11) default NULL,
`commentaire` text collate latin1_general_ci NOT NULL,
`restreint_equipe` tinyint(1) default '0' COMMENT 'apply to other teams',
`display` tinyint(1) default '1' COMMENT 'apply to everybody',
`demande_de_match` tinyint(1) default '0',
PRIMARY KEY (`id`),
CONSTRAINT `fk_FC_game_events_events_FC_game_events_jeux1` FOREIGN KEY (`nom_jeu`) REFERENCES `FC_game_events_jeux` (`nom_jeu`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `fk_FC_game_events_events_FC_game_events_teams1` FOREIGN KEY (`team_id`) REFERENCES `FC_game_events_teams` (`team_id`) ON DELETE NO ACTION ON UPDATE SET NULL,
CONSTRAINT `fk_FC_game_events_events_FC_game_events_users1` FOREIGN KEY (`createur`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
Posté le : 17/11/2010 21:22
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|