Lille, le 21 décembre 2020
Depuis de très nombreuses années, Dalibo propose dans son catalogue de formations un module dédié à la migration Oracle vers PostgreSQL. Au début de l’année 2020, l’équipe en charge du contenu pédagogique avait décidé de lui revêtir le nouveau code MIGORPG sans qu’elle ne soit profondément remaniée. Il s’agissait d’une décision globale de restructuration de nos manuels, expliquée en janvier dernier sur notre blog.
Au cours de cette année incertaine, les demandes en accompagnement de migration et en formation ont été particulièrement fortes. Aussi, nous sommes ravis de présenter les actuelles nouveautés de cette formation et les projets à venir pour l’année 2021.
Actualisation du contenu
PostgreSQL évolue rapidement. Avec un cycle de sortie annuelle, nous avons constaté que des fonctionnalités communes entre Oracle et PostgreSQL étaient à présent stables et démocratisées. Les contenus relatifs aux versions 9.4 et inférieures ont donc été supprimés au profit des concepts bien plus actuels.
Nous pouvons citer en exemple :
- Les vues matérialisées disponibles depuis la version 9.3 : nous ne parlons plus des méthodes artisanales qui permettaient de faire l’émulation des vues ;
- Précision sur les colonnes générées apparues en version 12, similaires aux colonnes virtuelles sous Oracle ;
- Support des procédures stockées depuis PostgreSQL 11 et reprise des exemples des conversions automatiques avec Ora2Pg v19.1 et supérieures ;
- Actualisation des corrections avec les dernières versions de PostgreSQL, Oracle InstantClient et Ora2PG, simplification des modes d’installation.
Les travaux pratiques ont également bénéficier d’une clarification et d’une meilleure cohérence dans le déroulé complet de la formation.
Un rappel utile : le manuel est en libre accès en bas de la fiche descriptive de notre formation.
Tests pour la traduction PL/pgSQL
L’une de nos recommandations dans un projet de migration consiste à réaliser des tests fiables et complets sur le code procédural. Cette étape est cruciale pour s’assurer qu’aucune régression ne soit embarquée dans la traduction de code Oracle PL/SQL vers PL/pgSQL, le langage procédural natif de PostgreSQL.
Alors que nous ne faisions que préciser l’existence de l’outil pgTAP dans nos cours, nous proposons à présent un exercice complet à son sujet. Cette démarche nous permet d’insister davantage sur la nécessité des tests tout en illustrant les limites de la conversion automatique d’Ora2Pg avec des exemples variés.
L’extension pgTAP est fournie avec un client nommé pg_prove
. La rédaction des
tests unitaires se fait dans un ensemble de fichiers SQL, avec en arguments les
procédures à exécuter et le résultat attendu.
$ pg_prove -d pghr -U migration --recurse --ext .sql tests
tests/functions/emp_sal_ranking_test.sql .. 1/1
# Failed test 1: "Function emp_sal_ranking should return a float value as Oracle"
# have: 0
# want: 0.125
# Looks like you failed 1 test of 1
tests/functions/emp_sal_ranking_test.sql .. Failed 1/1 subtests
tests/functions/last_first_name_test.sql .. ok
Test Summary Report
-------------------
tests/functions/emp_sal_ranking_test.sql (Wstat: 0 Tests: 1 Failed: 1)
Failed test: 1
Files=2, Tests=2, 0 wallclock secs
( 0.02 usr + 0.00 sys = 0.02 CPU)
Result: FAIL
Nous pensons que ces nouveaux exercices permettront aux participants de mieux identifier les différences d’implémentation du SQL dans les deux systèmes de bases de données que sont Oracle et PostgreSQL.
Améliorations à venir
Dans un soucis de contribuer au mieux dans votre démarche de migration, nous continuerons d’enrichir le contenu de cette formation très spécialisée, avec nos différents retours d’expérience terrain.
Dans les prochains trimestres, nous imaginons intégrer des manipulations plus concrètes au sein des différents modules de la formation, comme :
- La génération du rapport de migration d’une base Oracle au format HTML ;
- La lecture et les explications du rapport de notre base de formation ;
- Des exercices pratiques de migration de données « base à base » ;
- La validation d’une migration avec Ora2Pg et son option
-t TEST
.
Vous avez des questions, des remarques ? Écrivez-nous à formation@dalibo.com !