Conseils

Migrer ses données de HFSQL vers MySQL, MariaDB ou PostgreSQL : notre outil d'export

La migration d'une base HFSQL vers un SGBD open source est un exercice classique dès qu'un projet WinDev doit cohabiter avec un écosystème plus ouvert, voire s'affranchir totalement de l'écosystème PC SOFT. Que l'objectif soit de faire dialoguer une application existante avec d'autres briques techniques, ou de basculer définitivement vers une stack open source, le besoin reste le même : transférer les données de manière fiable et rapide. Pour fluidifier cette étape, nous avons développé un outil dédié qui automatise toute la chaîne de migration, de la création du schéma cible jusqu'à l'import des données, vers MySQL, MariaDB ou PostgreSQL.

Ce que fait l'outil

L'outil se connecte au serveur HFSQL et travaille en plusieurs temps.

D'abord, il liste l'ensemble des fichiers présents sur le serveur. Pas besoin de saisir manuellement les noms : la liste se construit automatiquement à partir de ce qui est réellement disponible sur la connexion.

Ensuite, pour chaque fichier sélectionné, il récupère la structure : nom des rubriques, types, clés, et tout ce qui est nécessaire pour produire des instructions cohérentes. Cette lecture de la description sert de base à toute la génération du SQL.

À partir de cette structure, il génère directement le script de création des tables adapté au SGBD cible choisi : CREATE TABLE, mapping des types HFSQL vers les types natifs du moteur (MySQL, MariaDB ou PostgreSQL), clés primaires, clés étrangères, index et contraintes d'intégrité. Plus besoin de passer par WinDev pour produire ce script : l'outil s'en charge de bout en bout, en transposant fidèlement le schéma source vers la base cible, dans la syntaxe propre à chaque moteur.

Enfin, il construit des INSERT de masse (multi-lignes) prêts à être exécutés sur la base cible. Le regroupement des enregistrements dans des INSERT groupés évite l'empilement de milliers de requêtes unitaires et accélère nettement le temps d'import.

Un outil multi-SGBD

L'outil prend désormais en charge trois moteurs de destination : MySQL, MariaDB et PostgreSQL. Il suffit de choisir la cible voulue, et l'outil adapte automatiquement la génération : les types de données, la syntaxe du CREATE TABLE, la déclaration des clés et contraintes, ainsi que le formatage des INSERT sont produits selon les spécificités de chaque SGBD.

Cette flexibilité élargit considérablement les scénarios de migration possibles, que la cible soit imposée par l'infrastructure existante ou choisie librement dans le cadre d'une nouvelle stack.

Des performances pensées dès le départ

L'outil est optimisé pour traiter de gros volumes. Il intègre une gestion de la parallélisation de l'export : plusieurs fichiers sont traités simultanément plutôt que les uns après les autres. Concrètement, pendant qu'un fichier est lu et que ses INSERT sont générés, d'autres fichiers sont déjà en cours de traitement.

Ce fonctionnement en parallèle exploite pleinement les ressources de la machine et réduit considérablement le temps total d'export, en particulier sur des bases comportant de nombreux fichiers ou des tables volumineuses. Grâce à cette approche, l'outil gère sans difficulté des tables comportant plusieurs millions de lignes. Le résultat : un export rapide et efficace, même sur des migrations conséquentes.

Une migration complète et autonome

L'outil couvre l'intégralité de la migration. Il produit à la fois :

  • le script de création du schéma : tables, types adaptés au SGBD cible, clés primaires et étrangères, index et contraintes d'intégrité ;
  • le script d'import des données : les INSERT INTO ... VALUES (...), (...), ... correspondant au contenu des fichiers HFSQL.

Il n'est donc plus nécessaire de générer le script de création depuis l'analyse WinDev au préalable : la structure cible est reconstruite automatiquement à partir de la description des fichiers HFSQL. L'outil prend en charge l'ensemble du processus, sans dépendance vis-à-vis de l'environnement PC SOFT pour l'étape de mise en place du schéma.

En pratique

  1. On lance l'outil et on se connecte au serveur HFSQL.
  2. On choisit le SGBD de destination (MySQL, MariaDB ou PostgreSQL).
  3. On sélectionne les fichiers à exporter dans la liste détectée.
  4. L'outil lit chaque structure et génère le script de création des tables, clés et contraintes dans la syntaxe du moteur choisi.
  5. Il génère ensuite les INSERT de masse correspondant aux données.
  6. On récupère les scripts et on les exécute sur la base cible : création du schéma, puis import des données.

Pour qui ?

C'est l'outil idéal dès qu'il faut migrer une base HFSQL vers MySQL, MariaDB ou PostgreSQL de manière rapide et reproductible, sans avoir à préparer manuellement la structure cible. Il rend particulièrement service lors des phases de reprise de données, des tests de bascule, ou de la mise en place d'environnements miroir d'une base HFSQL existante.

En résumé : un outil simple, ciblé et autonome, compatible avec les principaux SGBD open source, qui automatise l'intégralité de la migration, de la création du schéma jusqu'à l'import des données, et qui fait gagner un temps considérable sur cette étape souvent ingrate.