-- Script de migration vers la base unique CLEO -- Date: 2025-09-11 -- Version: 2.0.1 -- ============================================================================== -- ÉTAPE 1: Création de la base CLEO -- ============================================================================== CREATE DATABASE IF NOT EXISTS `cleo` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE `cleo`; -- ============================================================================== -- ÉTAPE 2: Migration des tables depuis uof_linet -- ============================================================================== -- Tables métier principales CREATE TABLE IF NOT EXISTS `devis` LIKE `uof_linet`.`devis`; INSERT INTO `devis` SELECT * FROM `uof_linet`.`devis`; CREATE TABLE IF NOT EXISTS `devis_produits` LIKE `uof_linet`.`devis_produits`; INSERT INTO `devis_produits` SELECT * FROM `uof_linet`.`devis_produits`; CREATE TABLE IF NOT EXISTS `devis_histo` LIKE `uof_linet`.`devis_histo`; INSERT INTO `devis_histo` SELECT * FROM `uof_linet`.`devis_histo`; CREATE TABLE IF NOT EXISTS `clients` LIKE `uof_linet`.`clients`; INSERT INTO `clients` SELECT * FROM `uof_linet`.`clients`; CREATE TABLE IF NOT EXISTS `produits` LIKE `uof_linet`.`produits`; INSERT INTO `produits` SELECT * FROM `uof_linet`.`produits`; CREATE TABLE IF NOT EXISTS `produits_familles` LIKE `uof_linet`.`produits_familles`; INSERT INTO `produits_familles` SELECT * FROM `uof_linet`.`produits_familles`; CREATE TABLE IF NOT EXISTS `marches` LIKE `uof_linet`.`marches`; INSERT INTO `marches` SELECT * FROM `uof_linet`.`marches`; CREATE TABLE IF NOT EXISTS `users` LIKE `uof_linet`.`users`; INSERT INTO `users` SELECT * FROM `uof_linet`.`users`; -- Tables de référence (x_*) CREATE TABLE IF NOT EXISTS `x_familles` LIKE `uof_linet`.`x_familles`; INSERT INTO `x_familles` SELECT * FROM `uof_linet`.`x_familles`; CREATE TABLE IF NOT EXISTS `x_statuts_devis` LIKE `uof_linet`.`x_statuts_devis`; INSERT INTO `x_statuts_devis` SELECT * FROM `uof_linet`.`x_statuts_devis`; CREATE TABLE IF NOT EXISTS `x_clients_types` LIKE `uof_linet`.`x_clients_types`; INSERT INTO `x_clients_types` SELECT * FROM `uof_linet`.`x_clients_types`; -- ============================================================================== -- ÉTAPE 3: Migration de y_pages depuis uof_frontal -- ============================================================================== CREATE TABLE IF NOT EXISTS `y_pages` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `script` varchar(50) DEFAULT NULL, `titre` varchar(255) DEFAULT NULL, `description` text, `keywords` text, `admin` tinyint(1) DEFAULT 0, `active` tinyint(1) DEFAULT 1, `mail` tinyint(1) DEFAULT 0, `form` tinyint(1) DEFAULT 0, `sidebar` tinyint(1) DEFAULT 0, `chart` tinyint(1) DEFAULT 0, `agenda` tinyint(1) DEFAULT 0, `autocomplete` tinyint(1) DEFAULT 0, `scheduler` tinyint(1) DEFAULT 0, `osm` tinyint(1) DEFAULT 0, `vuejs` tinyint(1) DEFAULT 0, `files` tinyint(1) DEFAULT 0, `layout` varchar(50) DEFAULT 'default', PRIMARY KEY (`rowid`), KEY `idx_script` (`script`), KEY `idx_admin` (`admin`), KEY `idx_active` (`active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Import des données depuis uof_frontal.y_pages INSERT INTO `y_pages` SELECT * FROM `uof_frontal`.`y_pages` WHERE admin = 1; -- ============================================================================== -- ÉTAPE 4: Migration de users_entites depuis uof_frontal -- ============================================================================== CREATE TABLE IF NOT EXISTS `users_entites` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `appname` varchar(50) DEFAULT NULL, `libelle` varchar(255) DEFAULT NULL, `adresse1` varchar(255) DEFAULT NULL, `adresse2` varchar(255) DEFAULT NULL, `cp` varchar(10) DEFAULT NULL, `ville` varchar(100) DEFAULT NULL, `tel1` varchar(20) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `http_host` varchar(255) DEFAULT NULL, `groupebase` varchar(50) DEFAULT NULL, `genbase` varchar(50) DEFAULT NULL, `table_users_gen` varchar(100) DEFAULT 'users', `active` tinyint(1) DEFAULT 1, PRIMARY KEY (`rowid`), KEY `idx_appname` (`appname`), KEY `idx_http_host` (`http_host`), KEY `idx_active` (`active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Import des données depuis uof_frontal.users_entites INSERT INTO `users_entites` SELECT * FROM `uof_frontal`.`users_entites`; -- ============================================================================== -- ÉTAPE 5: Création de la table z_logs (depuis la base logs si elle existe) -- ============================================================================== CREATE TABLE IF NOT EXISTS `z_logs` ( `rowid` int(11) NOT NULL AUTO_INCREMENT, `fk_user` int(11) DEFAULT 0, `script` varchar(50) DEFAULT NULL, `user_agent` varchar(100) DEFAULT NULL, `http_host` varchar(100) DEFAULT NULL, `ip_client` varchar(50) DEFAULT NULL, `appname` varchar(50) DEFAULT NULL, `commentaire` text, `date_histo` datetime DEFAULT NULL, `notif` tinyint(1) DEFAULT 0, PRIMARY KEY (`rowid`), KEY `idx_user` (`fk_user`), KEY `idx_date` (`date_histo`), KEY `idx_script` (`script`), KEY `idx_appname` (`appname`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Si la base logs existe, importer les données -- INSERT INTO `z_logs` SELECT * FROM `logs`.`z_logs`; -- ============================================================================== -- ÉTAPE 6: Mise à jour des configurations -- ============================================================================== -- Mise à jour de users_entites pour la nouvelle configuration UPDATE `users_entites` SET `genbase` = 'cleo', `groupebase` = 'cleo', `table_users_gen` = 'users' WHERE `active` = 1; -- ============================================================================== -- ÉTAPE 7: Création de l'utilisateur pour l'application -- ============================================================================== -- Créer l'utilisateur s'il n'existe pas CREATE USER IF NOT EXISTS 'cleo_user'@'%' IDENTIFIED BY 'CleoDev2025!'; -- Donner tous les privilèges sur la base cleo GRANT ALL PRIVILEGES ON `cleo`.* TO 'cleo_user'@'%'; -- Rafraîchir les privilèges FLUSH PRIVILEGES; -- ============================================================================== -- ÉTAPE 8: Vérifications -- ============================================================================== -- Afficher le nombre de lignes par table SELECT 'devis' as table_name, COUNT(*) as nb_lignes FROM devis UNION ALL SELECT 'devis_produits', COUNT(*) FROM devis_produits UNION ALL SELECT 'clients', COUNT(*) FROM clients UNION ALL SELECT 'produits', COUNT(*) FROM produits UNION ALL SELECT 'marches', COUNT(*) FROM marches UNION ALL SELECT 'users', COUNT(*) FROM users UNION ALL SELECT 'y_pages', COUNT(*) FROM y_pages UNION ALL SELECT 'users_entites', COUNT(*) FROM users_entites UNION ALL SELECT 'z_logs', COUNT(*) FROM z_logs; -- ============================================================================== -- FIN DE LA MIGRATION -- ============================================================================== -- -- IMPORTANT: Après exécution de ce script: -- 1. Vérifier que toutes les données ont été correctement migrées -- 2. Mettre à jour le fichier .env avec les nouvelles informations de connexion -- 3. Tester l'application avec la nouvelle base -- 4. Si tout est OK, sauvegarder les anciennes bases avant suppression --