Fork me on GitHub






Erreur mysql.sql avec contrainte entre les tables
Régulier
Inscrit: 31/01/2008 01:30
Messages: 285
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` (
  `
loginvarchar(100collate latin1_general_ci NOT NULL,
  `
tokenvarchar(47collate latin1_general_ci NOT NULL,
  `
ipvarchar(60collate latin1_general_ci default NULL,
  `
date_debut_sessionint(11) default NULL,
  `
date_dernier_acces_sessionint(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` (
  `
idint(11NOT NULL auto_increment,
  `
nomvarchar(45collate latin1_general_ci default NULL,
  `
date_debuttimestamp NULL default NULL,
  `
date_fintimestamp NULL default NULL,
  `
createurint(11NOT NULL,
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
team_idint(11) default NULL,
  `
commentairetext collate latin1_general_ci NOT NULL,
  `
restreint_equipetinyint(1) default '0' COMMENT 'apply to other teams',
  `
displaytinyint(1) default '1' COMMENT 'apply to everybody',
  `
demande_de_matchtinyint(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=;

-- 
-- 
Contenu de la table `FC_game_events_events`
-- 


-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_jeux`
-- 

CREATE TABLE `FC_game_events_jeux` (
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
descriptiontext 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_jeuxVALUES ('Aion''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Battlefield Bad Company 2''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('CS''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Waaah''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Woups''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Wow''un jeu');

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_jeux_users`
-- 

CREATE TABLE `FC_game_events_jeux_users` (
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
user_idint(11NOT 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_idint(11NOT NULL,
  `
user_idint(11NOT NULL,
  `
validetinyint(1NOT 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_membersVALUES (111);
INSERT INTO `FC_game_events_team_membersVALUES (121);
INSERT INTO `FC_game_events_team_membersVALUES (131);
INSERT INTO `FC_game_events_team_membersVALUES (221);
INSERT INTO `FC_game_events_team_membersVALUES (231);
INSERT INTO `FC_game_events_team_membersVALUES (321);
INSERT INTO `FC_game_events_team_membersVALUES (331);
INSERT INTO `FC_game_events_team_membersVALUES (421);

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_teams`
-- 

CREATE TABLE `FC_game_events_teams` (
  `
team_idint(11NOT NULL auto_increment,
  `
nomvarchar(100collate latin1_general_ci NOT NULL,
  `
descriptiontext collate latin1_general_ci,
  `
createurint(11NOT NULL,
  `
chefint(11NOT NULL,
  `
date_creationtimestamp NULL default NULL,
  `
lien_vocalvarchar(255collate 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=DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_teams`
-- 

INSERT INTO `FC_game_events_teamsVALUES (1'The best''On est les meilleurs'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (2'Cat''s eye''En avant l''aventure !'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (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'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (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'22'0000-00-00 00:00:00'NULL);

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_users`
-- 

CREATE TABLE `FC_game_events_users` (
  `
user_idint(11NOT NULL auto_increment,
  `
loginvarchar(100collate latin1_general_ci default NULL,
  `
mdpvarchar(512collate latin1_general_ci default NULL,
  `
mailvarchar(255collate latin1_general_ci default NULL,
  
PRIMARY KEY  (`user_id`),
  
UNIQUE KEY `login_UNIQUE` (`login`)
ENGINE=InnoDB AUTO_INCREMENT=DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_users`
-- 

INSERT INTO `FC_game_events_usersVALUES (1'toto''a7102b267e67049289d53b0036c345cd''compte@de.test');
INSERT INTO `FC_game_events_usersVALUES (2'admin''495ed4845515d52f29a95994b5924b3a''admin@admin.fr');
INSERT INTO `FC_game_events_usersVALUES (3'tata''7e0f561b370cc58fa4fe04a766520a3d''test01@test01.fr');

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_users_data`
-- 

CREATE TABLE `FC_game_events_users_data` (
  `
user_idint(11NOT NULL auto_increment,
  `
sitetext collate latin1_general_ci NOT NULL,
  `
vocalenum('Mumble','TeamSpeak 2','TeamSpeak 3','Skype','Ventrilo'collate latin1_general_ci NOT NULL,
  `
ipvocalvarchar(22collate latin1_general_ci NOT NULL,
  `
serveurjeuenum('Priver','Public'collate latin1_general_ci NOT NULL,
  `
ipserveurvarchar(22collate 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=;

-- 
-- 
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_loginFOREIGN 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_jeux1FOREIGN 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_teams1FOREIGN 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_users1FOREIGN 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_event1FOREIGN 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_event2FOREIGN 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_even1FOREIGN 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_even2FOREIGN 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_users1FOREIGN 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_users2FOREIGN 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_data1FOREIGN 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
Partager Twitter Partagez cette article sur GG+
Re: Erreur mysql.sql avec contrainte entre les tables
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
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

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Erreur mysql.sql avec contrainte entre les tables
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Pourquoi vous ne les mettez pas direct dans le create?
CREATE TABLE `FC_game_events_events` (
  `
idint(11NOT NULL auto_increment,
  `
nomvarchar(45collate latin1_general_ci default NULL,
  `
date_debuttimestamp NULL default NULL,
  `
date_fintimestamp NULL default NULL,
  `
createurint(11NOT NULL,
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
team_idint(11) default NULL,
  `
commentairetext collate latin1_general_ci NOT NULL,
  `
restreint_equipetinyint(1) default '0' COMMENT 'apply to other teams',
  `
displaytinyint(1) default '1' COMMENT 'apply to everybody',
  `
demande_de_matchtinyint(1) default '0',
  
PRIMARY KEY  (`id`),
  
CONSTRAINT `fk_FC_game_events_events_FC_game_events_jeux1FOREIGN 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_teams1FOREIGN 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_users1FOREIGN 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=;



Posté le : 17/11/2010 21:22

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



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.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

61 Personne(s) en ligne (54 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 61 | Plus ...