logo

phpMyResa

Installation de la version V4.0 - Mise à jour de la structure de la base de données



La mise à jour de la structure de votre base de données dépend de la version de PHPMyResa que vous utilisez actuellement.

Attention : les scripts donnés ci-dessous ne fonctionneront que si la version de MySQL que vous utilisez est supérieure à 4. Si ce n'est pas le cas, il est sûrement préférable pour vous de mettre à jour MySQL. Si cela n'est pas possible et que vous ne savez pas comment effectuer les modifications dans la structure de la base de données vous-même, contactez nous, je vous indiquerai la procédure à suivre.

  • Si vous possèdez actuellement la version V3.x
Voila la suite des actions à effectuer afin de mettre à jour la structure de votre base de données à la version V4.0 :
 
1 - Ajout de nouveaux champs
 
ALTER TABLE `languages` ADD `spanish` TEXT NOT NULL ;
ALTER TABLE `languages` ADD `german` TEXT NOT NULL ;
ALTER TABLE `reservation` ADD `diffusion` int(1) NOT NULL default '1' ;
 
2 - Mise à jour des données de la table languages
 
Pour mettre à jour les données de la table languages, videz le contenu de celle-ci (tapez "delete from languages where name not like 'resa_mandatory_priority_%';") puis copiez collez le contenu du nouveau fichier INSTALL_data_db.sql dans mysql.
N'oubliez pas de supprimer ensuite les fichiers de session. Ceux-ci se trouvent dans le répertoire spécifié par la variable php session.save_path (voir votre fichier php.ini).
 
 
  • Si vous possèdez actuellement une version V2.x
Voila la suite des actions à effectuer afin de mettre à jour la structure de votre base de données à la version V3.0 :
 
1 - Changements de structure des champs existants
 
ALTER TABLE `reservation` CHANGE `date` `jour` DATE DEFAULT '0000-00-00' NOT NULL;
ALTER TABLE `reservation` ADD INDEX ( `jour` );
ALTER TABLE `reservation` ADD INDEX ( `titre` );
ALTER TABLE `reservation` ADD INDEX ( `email` );
ALTER TABLE `reservation` CHANGE `jour` `jour` VARCHAR( 10 ) DEFAULT '0000-00-00' NOT NULL;
ALTER TABLE `reservation` CHANGE `debut` `debut` VARCHAR( 8 ) DEFAULT '00:00:00' NOT NULL;
ALTER TABLE `reservation` CHANGE `duree` `duree` VARCHAR( 8 ) DEFAULT '00:00:00' NOT NULL;
ALTER TABLE `objet` CHANGE `pubIcal` `pubical` INT( 1 ) UNSIGNED DEFAULT '1' NOT NULL;
ALTER TABLE `objet` CHANGE `capacite` `capacite` VARCHAR( 30 ) DEFAULT '0' NOT NULL;
 
2 - Ajout de nouveaux champs
 
ALTER TABLE `objet` ADD `visible` INT( 1 ) UNSIGNED DEFAULT '1' NOT NULL;
ALTER TABLE `objet` ADD `wifi` INT( 1 ) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE `reservation` ADD `wifi` INT( 1 ) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE `reservation` ADD `state` INT( 1 ) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE `reservation` ADD INDEX `state` ( `state` );
 
3 - Mise à jour des données de la table languages
 
Pour mettre à jour les données de la table languages, videz le contenu de celle-ci (tapez "delete from languages where name not like 'resa_mandatory_priority_%';") puis copiez collez le contenu du nouveau fichier INSTALL_data_db.sql dans mysql.
N'oubliez pas de supprimer ensuite les fichiers de session. Ceux-ci se trouvent dans le répertoire spécifié par la variable php session.save_path (voir votre fichier php.ini).
 
 
  • Si vous possèdez actuellement la version V1.0 ou V1.1
Voila la suite des actions à effectuer afin de mettre à jour la structure de votre base de données à la version V2.0 :
 
1 - Création de la table classe et utilisation d'un champ id_classe dans les autres tables
 
CREATE TABLE `classe` (
    `id` int(2) NOT NULL auto_increment,
    `nom` varchar(50) NOT NULL default '',
    `jour_meme` int(1) NOT NULL default '1',
    PRIMARY KEY (`id`),
    UNIQUE KEY `nom` (`nom`)
);
=> remplir cette table avec les bonnes valeurs, en faisant attention à l'orthographe !
 
ALTER TABLE `administrateur` ADD `id_classe` INT( 2 ) FIRST;
UPDATE administrateur A, classe C SET A.id_classe = C.id WHERE A.classe = C.nom;
=> vérifier le bon résultat de cette commande !
 
ALTER TABLE `administrateur` CHANGE `id_classe` `id_classe` INT( 2 ) DEFAULT '0' NOT NULL;
ALTER TABLE `administrateur` DROP `classe`;
ALTER TABLE `administrateur` ADD PRIMARY KEY ( `id_classe` );
 
ALTER TABLE `salles` ADD `id_classe` INT( 2 );
UPDATE salles S, classe C SET S.id_classe = C.id WHERE S.classe = C.nom;
=> vérifier le bon résultat de cette commande !
 
ALTER TABLE `salles` DROP `classe`;
ALTER TABLE `salles` ADD INDEX ( `id_classe` );
ALTER TABLE `salles` CHANGE `id_classe` `id_classe` INT( 2 ) DEFAULT '0' NOT NULL;
 
ALTER TABLE `reservation` DROP INDEX `idsalle`;
ALTER TABLE `reservation` CHANGE `idsalle` `idobjet` INT( 2 ) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE `reservation` ADD INDEX ( `idobjet` );
 
2 - Création de la table objet à la place de la table salle
 
CREATE TABLE `objet` (
    `id` int(2) unsigned NOT NULL auto_increment,
    `id_classe` int(2) NOT NULL default '0',
    `nom` varchar(128) NOT NULL default '',
    `capacite` int(3) unsigned NOT NULL default '0',
    `status` int(1) unsigned NOT NULL default '0',
    `libelle` varchar(255) NOT NULL default '',
    `videoConf` int(1) unsigned NOT NULL default '0',
    PRIMARY KEY (`id`),
    UNIQUE KEY `nom` (`nom`),
    KEY `id_classe` (`id_classe`)
);
 
INSERT INTO `objet` ( `id` , `id_classe` , `nom` , `capacite` , `status` , `libelle` , `videoConf` ) SELECT `id` , `id_classe` , `nom` , `capacite` , `status` , `libelle` , `videoConf` FROM `salles`;
DROP TABLE `salles`;
ALTER TABLE `objet` ADD `pubIcal` INT( 1 ) UNSIGNED DEFAULT '1' NOT NULL ;
ALTER TABLE `objet` ADD `available` INT( 1 ) UNSIGNED DEFAULT '1' NOT NULL ;
ALTER TABLE `objet` CHANGE `videoConf` `priority` INT( 1 ) UNSIGNED DEFAULT '0' NOT NULL;
 
3 - Autre
 
ALTER TABLE `administrateur` CHANGE `telephone` `telephone` VARCHAR( 20 ) NOT NULL;
ALTER TABLE `administrateur` ADD `default_language` VARCHAR( 30 ) DEFAULT 'english' NOT NULL;
 
ALTER TABLE `reservation` CHANGE `videoConference` `priority` INT( 1 ) UNSIGNED DEFAULT '0' NOT NULL;
 
CREATE TABLE `languages` (
    `name` varchar(50) NOT NULL default '',
    `french` text NOT NULL,
    `english` text NOT NULL,
    PRIMARY KEY (`name`)
    );
 
4 - Remplissage de la table languages
 
Pour remplir cette table, copiez collez le contenu du fichier INSTALL_data_db.sql dans mysql.
 
 
  • Si vous possèdez une version antérieure à PHPMyResa V1.0
Voila le script sql mettant à jour la structure de votre base de données à la version V1.0 :
 
ALTER TABLE salles DROP PRIMARY KEY;
ALTER TABLE salles ADD id INT(2) UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (id);
ALTER TABLE reservation DROP classe;
ALTER TABLE reservation ADD idsalle INT(2) UNSIGNED NOT NULL;
UPDATE reservation R, salles S SET R.idsalle = S.id WHERE S.nom = R.salle;
ALTER TABLE reservation ADD index (idsalle);
ALTER TABLE reservation DROP salle;