CREATE TABLE IF NOT EXISTS fusionax_anciens (
AN CHAR(2) NOT NULL COMMENT 'Vaut toujours AN pour cette table',
- id_ancien VARCHAR(8) NOT NULL COMMENT 'Id unique de l''ancien',
- Login VARCHAR(15) NOT NULL COMMENT 'Login sur le site de l''AX',
- Password INT(11) NOT NULL COMMENT 'Mot de passe sur le site AX',
+ ax_id VARCHAR(8) NOT NULL COMMENT 'Id unique de l''ancien',
promotion_etude SMALLINT(4) NOT NULL COMMENT 'Promotion avec laquelle il/elle a fait ses études',
- Groupe_promo ENUM('', 'A', 'B', 'C', 'N', 'S') character set binary NOT NULL COMMENT 'Groupe de promotion (code compris seulement par AX)',
- Nom_patronymique VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule',
- partic_patro VARCHAR(5) character set utf8 NOT NULL COMMENT 'Particule du nom patronymique',
- prenom VARCHAR(30) character set utf8 NOT NULL COMMENT 'Prénom',
- Nom_usuel VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule',
- partic_nom VARCHAR(5) character set utf8 NOT NULL COMMENT 'Particule du nom usuel',
- Nom_complet VARCHAR(255) character set utf8 NOT NULL COMMENT 'Nom patronymique complet (avec la particule)',
- Civilite ENUM('', '.', 'M', 'MME', 'MLLE') character set utf8 NOT NULL COMMENT 'Civilité',
+ Nom_patronymique VARCHAR(255) NOT NULL COMMENT 'Nom patronymique (nom de jeune fille) sans la particule',
+ partic_patro VARCHAR(5) NOT NULL COMMENT 'Particule du nom patronymique',
+ prenom VARCHAR(30) NOT NULL COMMENT 'Prénom',
+ Nom_usuel VARCHAR(255) NOT NULL COMMENT 'Nom usuel (nom marital par exemple) sans la particule',
+ partic_nom VARCHAR(5) NOT NULL COMMENT 'Particule du nom usuel',
+ Nom_complet VARCHAR(255) NOT NULL COMMENT 'Nom patronymique complet (avec la particule)',
Code_nationalite CHAR(4) NOT NULL COMMENT 'Nationalité (code)',
- Type_membre ENUM('', '*', 'F', 'FB', 'P', 'PB', 'T', 'TB', 'TA') character set binary NOT NULL COMMENT 'Type de membre (code compris seulement par AX)',
- corps_sortie VARCHAR(50) character set utf8 NOT NULL COMMENT 'Corps de sortie (ou D si aucun)',
+ corps_sortie VARCHAR(50) NOT NULL COMMENT 'Corps de sortie (ou D si aucun)',
Date_deces DATE COMMENT 'Date de décès',
grade VARCHAR(50) NOT NULL COMMENT 'Grade actuel dans son corps',
Mel_usage VARCHAR(255) NOT NULL COMMENT 'Adresse e-mail d''usage',
Mel_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mail',
+ Mob_publiable TINYINT(4) NOT NULL COMMENT 'Autorisation d''utiliser le mobile',
tel_mobile VARCHAR(30) NOT NULL COMMENT 'Numéro de téléphone mobile',
- annee_dernCot INT(11) NOT NULL COMMENT 'Année de dernière cotisation AX',
- Representant ENUM('', 'K', 'DE') character set binary NOT NULL COMMENT 'Représentant de promotion',
- hash_adr_defaut BINARY(5) NOT NULL COMMENT 'Hash de l''adresse par défaut',
- Date_maj DATE NOT NULL,
- PRIMARY KEY (id_ancien)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
-
-LOAD DATA LOCAL INFILE 'Anciens.txt' INTO TABLE `fusionax_anciens` FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n'
-(`AN`, `id_ancien`, `Login`, `Password`, `promotion_etude`, `Groupe_promo`, `Nom_patronymique`, `partic_patro`, `prenom`, Nom_usuel, partic_nom,
- Nom_complet, Civilite, Code_nationalite, Type_membre, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable,
- tel_mobile, annee_dernCot, Representant, @Type_adr_defaut, @AdrC_Ligne1, @AdrC_Ligne2, @AdrC_Ligne3, @AdrC_code_postal, @AdrC_ville,
- @AdrC_zip_cedex, @AdrC_etat_distr, @AdrC_pays, @tel, @fax, @StringDate_maj)
+ pid INT(11) UNSIGNED DEFAULT NULL,
+ PRIMARY KEY (ax_id),
+ INDEX (pid)
+) ENGINE=InnoDB, CHARSET=utf8;
+
+LOAD DATA LOCAL INFILE '{?}Anciens.txt' INTO TABLE `fusionax_anciens` CHARACTER SET utf8 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n'
+(AN, ax_id, @login, @password, promotion_etude, @gpe_promo, Nom_patronymique, partic_patro, prenom, Nom_usuel, partic_nom,
+ Nom_complet, @civilite, Code_nationalite, @type, corps_sortie, @StringDate_deces, grade, Mel_usage, Mel_publiable, @xxx, Mob_publiable,
+ tel_mobile, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @X_M_D, @xxx, @xxx, @xxx, @xxx, @xxx, @xxx, @Type_adr,
+ @Ligne1, @Ligne2, @Ligne3, @code_postal, @ville, @zip_cedex, @etat_distr, @pays, @tel, @fax, @date_MAJ)
SET
- `hash_adr_defaut` = SUBSTRING( MD5( @Type_adr_defaut ), 1, 5),
- `Date_maj` = CONCAT(SUBSTRING(@StringDate_maj,7),'-',SUBSTRING(@StringDate_maj,4,2),'-',SUBSTRING(@StringDate_maj,1,2)),
- `Date_deces` = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2));
+ Date_deces = CONCAT(SUBSTRING(@StringDate_deces,7),'-',SUBSTRING(@StringDate_deces,4,2),'-',SUBSTRING(@StringDate_deces,1,2));
+-- Mel_publiable is not certain yet :/
-ALTER TABLE fusionax_anciens ADD INDEX (id_ancien);
+ALTER TABLE fusionax_anciens ADD INDEX (ax_id);
-- Correspondances entre fiches X.org et fiches AX
DROP TABLE IF EXISTS `fusionax_import`;
CREATE TABLE IF NOT EXISTS `fusionax_import` (
- `id_ancien` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien',
- `user_id` INT(11) DEFAULT NULL COMMENT 'identifiant x.org de l''ancien si on l''a trouvé',
+ `ax_id` VARCHAR(8) NOT NULL COMMENT 'identifiant AX de l''ancien',
+ `pid` INT(11) DEFAULT NULL COMMENT 'identifiant du profil x.org de l''ancien si on l''a trouvé',
`date_match_id` TIMESTAMP NULL DEFAULT NULL COMMENT 'date de mise en correspondance des identifiants',
- PRIMARY KEY (`id_ancien`),
- KEY `user_id` (`user_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+ PRIMARY KEY (`ax_id`),
+ KEY `pid` (`pid`)
+) ENGINE=InnoDB, CHARSET=utf8;
+
+INSERT INTO `fusionax_import` ( SELECT `ax_id`, NULL, NULL FROM `fusionax_anciens` );
+REPLACE INTO `fusionax_import` ( SELECT `ax_id`, `pid`, NOW() FROM `profiles` );
+
+CREATE TEMPORARY TABLE IF NOT EXISTS tmp_update_fusionax_anciens (
+ good CHAR(4) DEFAULT NULL,
+ bad CHAR(4) DEFAULT NULL,
+ PRIMARY KEY(bad),
+ UNIQUE KEY(good)
+) CHARSET=utf8;
+
+INSERT IGNORE INTO tmp_update_fusionax_anciens (bad, good)
+ VALUES ('TC', 'CAM'),
+ ('SH', 'CN'),
+ ('R', 'RO'),
+ ('TW', 'RC'),
+ ('TG', 'RT'),
+ ('U', 'ROU'),
+ ('KP', 'ROK'),
+ ('CRO', 'HR'),
+ ('UKR', 'UA'),
+ ('AM', 'ARM'),
+ ('CS', 'CZ'),
+ ('SU', 'RUS'),
+ ('LET', 'LV'),
+ ('MDA', 'MD');
-INSERT INTO `fusionax_import` ( SELECT `id_ancien`, NULL, NULL FROM `fusionax_anciens` );
-REPLACE INTO `fusionax_import` ( SELECT `matricule_ax`, `user_id`, NOW() FROM `auth_user_md5` );
+ UPDATE fusionax_anciens AS f
+INNER JOIN tmp_update_fusionax_anciens AS t ON (f.Code_nationalite = t.bad)
+ SET f.Code_nationalite = t.good;