Découverte de PostgreSQL Migrator

Atelier Migration PostgreSQL Migrator

Dalibo & Contributors

Introduction

Tour de table

  • « Avez-vous un ou des projets de migration vers PostgreSQL ? »
  • « Depuis quel système ? Oracle, MySQL, SQL Server ? »
  • « Quels outils ou techniques avez-vous employés ? »
  • « Quelles ont été les principales difficultés ? »

Déroulé de l’atelier

  • 3 heures
  • Présentation de PostgreSQL Migrator
  • Travaux pratiques sur la base HR
    • Manipulation de l’outil
    • Analyse de la complexité
    • Migration des tables et des données

Prérequis de l’atelier

  • Un terminal
  • Une VM Rocky Linux 9 ou équivalent
  • Compétences Linux et SQL
  • Une instance Oracle (image gvenzl/oracle-free:23-slim)
  • Une instance PostgreSQL 18

Présentation

Ambitions (1/3)

Moderniser la migration avec des logiciels libres.

  • Un outil universel
    • Couplé à transqlate pour la conversion du code
    • Sous licence PostgreSQL
    • Hébergé sur Gitlab.com
  • Langages Go (backend) et Vue.js (frontend)

Ambitions (2/3)

Proposer une gouvernance solide

  • Le projet rejoint le Dalibo Labs
  • Travail conjoint entre les DBA et les DEV
    • Itérations de deux semaines
    • Intégration et livraison continues (CI/CD)

Ambitions (3/3)

Favoriser drastiquement la prise en main

  • Simplification de l’installation
  • Navigation graphique dans le modèle de données à convertir
  • Identification des points chaud du chantier
  • Peu de configurations superflues
  • Orchestration des tâches de copie automatique et optimisée
  • Documentation

Fonctionnalités (1/4)

Un binaire unique en Go

  • Aucune dépendance à installer sur le système
  • Pilotes communautaires : Oracle, MySQL
  • Ligne de commande simple et moderne
  • Serveur Web embarqué (Vue.js)

Fonctionnalités (2/4)

Mode hors-ligne

  • Inspection de la base source vers des fichiers JSON
  • Exploitation des données sans besoin de connexion
    • Analyse des points chauds
    • Conversion du modèle pour PostgreSQL au format SQL
    • Versionnement pour le travail collaboratif

Fonctionnalités (3/4)

Transfert des données performant

  • Langage compilé
  • Techniques de transfert optimisé
    • COPY en flux continu
    • Maîtrise de la consommation mémoire
    • Réutilisation des connexions ouvertes
  • Support des BLOB/CLOB

Fonctionnalités (4/4)

Interface graphique (Web)

  • Navigation dans les modèles source et cible
  • Définition des objets relationnels et procéduraux
  • Recherche globale
  • À terme
    • Assistant à la conversion
    • Progression du transfert des données
    • Édition / correction du code PL/pgSQL

Exercice #1

  • Installation de PostgreSQL Migrator
  • Inspection de la base source
  • Générer un rapport d’évaluation

Exercice #2

  • Écrire des règles de conversion
  • Naviguer dans l’interface graphique
  • Exporter le modèle dans des fichiers plats

Exercice #3

  • Création des tables
  • Copie des données
  • Création des index et des contraintes

Exercice #4

  • Décompter les lignes entre les deux bases
  • Contrôler l’intégrité des données
  • Déclencher un VACUUM FREEZE