Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonctionnalité de conversion de schéma Oracle vers Azure Database pour PostgreSQL dans l’extension PostgreSQL visual Studio Code vous permet de convertir vos objets de schéma de base de données Oracle existants en schéma compatible Avec PostgreSQL. Cette fonctionnalité est conçue pour les schémas relationnels et produit un schéma converti pour Azure Database pour PostgreSQL serveur flexible.
L’outil fournit une interface utilisateur basée sur un projet pour automatiser la conversion de schéma. Passez en revue le rapport de conversion et utilisez Conversion Explorateur d'objets pour inspecter les définitions d’objets et les notes de conversion. GitHub Copilot peut aider à expliquer le résultat et à modifier les objets qui nécessitent des changements manuels.
Architecture
Le processus de conversion de schéma implique plusieurs composants travaillant ensemble :
- Base de données Oracle source : votre base de données Oracle existante qui contient le schéma à convertir.
- Visual Studio Code extension PostgreSQL : interface principale pour la gestion du processus de conversion.
- Azure Database pour PostgreSQL - Serveur flexible : héberge les schémas temporaires utilisés pour la validation et les tests.
- Microsoft Foundry : fournit les modèles de langage qui alimentent la transformation de schéma pilotée par l’IA.
- Agents de conversion de schéma : agents basés sur l’IA qui gèrent le processus de conversion automatisé.
Fonctionnement
Le processus de conversion de schéma utilise une approche intelligente et multistage qui combine la transformation automatisée avec la supervision humaine :
- Connexion et découverte : l’outil se connecte à votre base de données Oracle et inventorie les objets dans les schémas sélectionnés. Passez en revue l’étendue d’extraction planifiée, les exclusions, les autorisations et les dépendances avant de continuer.
- Transformation basée sur l’IA : les agents de conversion de schéma utilisent des modèles de langage hébergés dans Microsoft Foundry pour transformer des constructions spécifiques à Oracle en équivalents compatibles PostgreSQL. L’IA prend en compte les meilleures pratiques de contexte, de relations et de plateforme.
- Validation de la base de données de test : l’outil tente de compiler des définitions générées dans la base de données de test sélectionnée et utilise des vérifications statiques disponibles pour identifier les problèmes de conversion. Ces vérifications n’établissent pas de comportement d’application équivalent.
- Révision d’objet : le rapport HTML et Conversion Explorateur d'objets affichent les résultats de conversion, les définitions disponibles et les notes de conversion. Passez en revue les objets Convertis et Non convertis .
- Correction guidée : Utilisez Ask pour comprendre la conversion d’un objet ou Fix pour des modifications assistées par Copilot. Compilez manuellement les définitions modifiées dans la base de données où le schéma converti est déployé.
-
Préparation du déploiement : l’outil génère des fichiers PostgreSQL
.sqlet des instructions d’installation. Passez en revue la sortie et exécutez les scripts d’installation séparément ; la génération de ces fichiers ne les déploie pas dans votre destination.
Installer l’extension
La fonctionnalité de conversion de schéma Oracle vers PostgreSQL est intégrée à l’extension PostgreSQL pour Visual Studio Code. Vous n’avez pas besoin d’installer une extension distincte.
Procédure d’installation :
-
Open Extensions Marketplace : dans Visual Studio Code, sélectionnez l’icône Extensions dans la barre d’activité sur le côté gauche, ou utilisez le raccourci clavier
Ctrl+Shift+X(Windows/Linux) ouCmd+Shift+X(macOS). -
Recherchez l’extension : dans la zone de recherche Extensions Marketplace, entrez
PostgreSQL(ou l’ID d’extensionms-ossdata.vscode-pgsql) pour rechercher l’extension. - Installer l’extension : dans les résultats de la recherche, recherchez PostgreSQL publié par Microsoft, puis sélectionnez Install. Plusieurs extensions PostgreSQL sont disponibles sur la Place de marché. Vérifiez donc que l’éditeur est Microsoft avant d’installer.
- Access Schema Conversion : une fois l’extension installée, une icône d’éléphant apparaît dans la barre d’activité Visual Studio Code. Sélectionnez l’icône pour ouvrir l’extension PostgreSQL et accéder à la fonctionnalité conversion de schéma.
Flux de travail de conversion de schéma
Le flux de travail commence par la découverte, puis se poursuit par l’extraction et la conversion. L’outil valide les définitions PostgreSQL générées dans une base de données scratch et vous passez en revue les résultats dans Conversion Explorateur d'objets avant de préparer les fichiers de déploiement.
Découverte
La phase de découverte suit la sélection de la connexion et du schéma Oracle, avant la configuration de la base de données de travail PostgreSQL. Il vérifie les autorisations de la source et inventorie les objets de schéma sans extraire le DDL. Les nombres décrivent l’inventaire source et l’extraction planifiée, et non les résultats de conversion.
| Résultats | Ce qu’il vous dit |
|---|---|
| Découvert | Objets trouvés lors de la découverte. |
| À extraire | Objets prévus pour l'extraction DDL. |
| Exclu | Objets omis du périmètre d’extraction prévu. |
| Objets non valides | Objets marqués comme non valides par la découverte. |
Passez en revue la prise en charge et les exclusions de type objet, ainsi que les dépendances de schéma, avant de confirmer l’étendue. Schémas dépendants répertorie les schémas référencés que vous n'avez pas sélectionnés. Le fait qu’un schéma apparaisse dans cette liste ne confirme pas qu’il est inclus dans le périmètre de conversion.
Pour obtenir des instructions détaillées, consultez Passer en revue les résultats de la découverte dans le didacticiel.
Extraction
L’extraction lit le DDL Oracle et les métadonnées pour l’étendue source examinée. Les définitions extraites fournissent les données d’entrée pour la conversion ; l’extraction réussie ne signifie pas qu’un objet a été converti.
Conversion
Les agents de conversion de schéma utilisent des modèles dans Microsoft Foundry pour traduire les définitions Oracle extraites en DDL PostgreSQL et tenter la compilation dans la base de données scratch. Passez en revue les objets convertis et non convertis dans Conversion Explorateur d'objets et validez indépendamment le comportement avant le déploiement.
Base de données scratch
Pour valider la conversion, sélectionnez une base de données vide ou une base dédiée et inutilisée sur un serveur flexible Azure Database pour PostgreSQL. L’outil utilise des schémas correspondant aux schémas Oracle que vous sélectionnez ; il n’isole pas les objets existants dans les schémas avec un préfixe distinct de nom temporaire.
Warning
L’outil supprime les schémas correspondants avec DROP SCHEMA ... CASCADE et les recrée. Cette action supprime leurs objets et données existants et peut supprimer des objets dépendants dans d’autres schémas. Ne sélectionnez pas une base de données contenant des éléments que vous devez conserver.
L’utilisateur de connexion a besoin d’une autorisation pour se connecter, créer des schémas et des objets de validation, et supprimer les schémas correspondants. Le niveau CREATE base de données seul n’accorde pas l’autorisation de supprimer un schéma appartenant à un autre rôle. Consultez les privilèges PostgreSQL requis.
Les vérifications de compilation et statiques peuvent identifier les erreurs de syntaxe, de dépendance et de type dans cet environnement. Ils ne testent pas les données de production, le comportement de l’application ou chaque chemin d’exécution.
Explorateur d’objets de conversion
Utilisez Conversion Explorateur d'objets pour inspecter les mappages source à cible, comparer les définitions Oracle et PostgreSQL et lire les notes de conversion. Sélectionnez Ask pour obtenir une explication de la conversion d'un objet et de ses dépendances, ou Fix pour apporter des modifications assistées par Copilot à son fichier PostgreSQL. Compilez la définition modifiée manuellement dans la base de données cible où le schéma converti est déployé.
Pour des instructions détaillées, consultez « Passer en revue les objets convertis dans Conversion Explorateur d'objets ».
Mode de l’agent GitHub Copilot
Le mode assistant Copilot GitHub est une fonctionnalité intégrée Visual Studio Code qui fournit des invites guidées pour vous aider à affiner les objets convertis et à aligner le schéma converti avec les exigences de votre application. Offres en mode Agent :
- Suggestions contextuelles pour les modifications de schéma.
- Recommandations de bonnes pratiques pour Azure Database pour PostgreSQL serveur flexible.
- Autocomplétion du code pour les transformations complexes.
- Intégration à votre flux de travail de développement existant.
Modes de connectivité Oracle
L’outil de conversion de schéma prend en charge deux modes de connectivité pour la connexion à votre base de données Oracle source : mince et épais. Comprendre la différence vous aide à choisir le mode approprié pour votre environnement.
Mode client léger (par défaut)
Le mode mince se connecte directement à Oracle Database sans bibliothèques de client Oracle supplémentaires. Ce mode est la valeur par défaut et ne nécessite aucune configuration supplémentaire.
- Nécessite aucune installation du client instantané Oracle.
- Prend en charge Oracle Database 12.1 et versions ultérieures.
- Convient à la plupart des scénarios de conversion de schéma.
- Se connecte à l’aide de la mise en réseau TCP/IP standard.
Mode client épais
Le mode « thick » utilise les bibliothèques Oracle Instant Client pour se connecter à Oracle Database. L’outil de conversion de schéma détecte quand un mode épais est nécessaire en fonction de votre configuration réseau Oracle et bascule automatiquement vers celui-ci.
Lorsque le mode client épais est requis
Vous pouvez déterminer si le mode client épais est requis en vérifiant les fichiers de configuration réseau Oracle dans votre environnement source. Recherchez les paramètres suivants dans le sqlnet.ora fichier (généralement situés dans $ORACLE_HOME/network/admin/) :
| Paramètre | Indique que le mode épais est requis |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
Définir sur REQUIRED ou REQUESTED pour le chiffrement réseau natif |
SQLNET.ENCRYPTION_CLIENT |
Définir sur REQUIRED ou REQUESTED pour le chiffrement réseau natif |
Si l’un de ces paramètres est configuré dans votre environnement Oracle source, le mode client épais est requis. L’outil de conversion de schéma détecte cette configuration et bascule automatiquement en mode épais. Vérifiez que le client instantané Oracle est installé sur l’ordinateur où Visual Studio Code est en cours d’exécution avant de démarrer la conversion.
Installer le client instantané Oracle
Pour utiliser le mode client épais, installez Oracle Instant Client sur l’ordinateur où Visual Studio Code et l’outil de conversion de schéma sont en cours d’exécution. Pour les systèmes d’exploitation pris en charge, consultez la configuration requise pour le système d’exploitation du didacticiel.
- Téléchargez le package Oracle Instant Client Basic ou Basic Light pour votre système d’exploitation à partir de Oracle Instant Client downloads. Choisissez un package compatible avec votre système d’exploitation et l’architecture de l’environnement de conversion.
- Suivez les instructions d’installation sur la page de téléchargement spécifique à la plateforme pour installer le package, les dépendances requises et la configuration du chemin de recherche de bibliothèque.
- Redémarrez Visual Studio Code pour récupérer les variables d’environnement mises à jour.
Authentification pour Microsoft Foundry
L’outil de conversion de schéma prend en charge deux méthodes d’authentification pour la connexion aux modèles de langage dans Microsoft Foundry :
Authentification par clé API
L’authentification par clé API utilise une clé spécifique au déploiement pour autoriser les demandes. Cette méthode est simple et adaptée aux scénarios de développement et de test.
Authentification par Microsoft Entra ID
L’authentification Microsoft Entra ID permet d’accéder à Microsoft Foundry à l’aide de jetons et d’une identité, sans avoir à gérer des clés API. Cette méthode est recommandée pour les environnements de production et les organisations avec la gestion centralisée des identités.
Pour utiliser l’authentification microsoft Entra ID :
- Assigner le rôle requis : vérifiez que l’utilisateur ou le principal de service connecté a le rôle Foundry User (anciennement Azure AI User) sur la ressource Microsoft Foundry qui héberge votre déploiement de modèle. Attribuez le rôle dans le portail Azure sous Contrôle d’accès (IAM). Pour plus d’informations, consultez Contrôle d’accès en fonction du rôle pour Microsoft Foundry.
-
Connectez-vous à Azure dans Visual Studio Code : utilisez la commande Azure : Se connecter dans la palette de commandes (
Ctrl+Shift+P) pour vous authentifier avec votre compte Microsoft Entra ID. - Sélectionnez l’authentification Entra ID : à l’étape de configuration du modèle de langage dans l’Assistant Migration, sélectionnez Microsoft Entra ID comme méthode d’authentification au lieu de la clé API.
- Provider le point de terminaison : entrez votre URL de point de terminaison Microsoft Foundry. L’outil acquiert automatiquement le jeton d’authentification à partir de votre session connectée.
L’authentification Microsoft Entra ID nécessite l’extension Azure Account dans Visual Studio Code. L’extension doit être connectée avec une identité qui a l’attribution de rôle appropriée sur la ressource Microsoft Foundry.
Sécurité et mise en réseau
Lorsque vous utilisez la fonctionnalité de conversion de schéma, assurez-vous que votre environnement Visual Studio Code peut se connecter en toute sécurité à votre base de données Oracle source et à l’instance de serveur flexible Azure Database pour PostgreSQL que vous utilisez comme base de données de travail.
Microsoft recommande de vous connecter à votre ressource Microsoft Foundry à l’aide d’un point de terminaison privé. Pour plus d’informations, consultez Configurer une liaison privée pour Microsoft Foundry.
Pour plus d’informations sur la sécurisation de vos connexions Microsoft Foundry, consultez Données, confidentialité et sécurité pour les modèles directs Azure dans Microsoft Foundry.
Important
Responsabilité de validation du client : le même moteur IA utilisé pour la conversion de schéma peut également faciliter la validation et la révision. Les systèmes IA peuvent parfois confirmer leurs propres erreurs. Pour éviter la perte de données, les régressions fonctionnelles ou les problèmes de sécurité, validez indépendamment les objets générés et les corrections manuelles avant le déploiement en production. Dans le cadre de vos contrôles, envisagez d’activer le filtrage de contenu Foundry pour réduire les sorties dangereuses ou non souhaitées. Pour obtenir des conseils, consultez filtrage de contenu dans Foundry.
Pourquoi utiliser la fonctionnalité de conversion de schéma ?
La conversion de schéma réduit les efforts manuels en générant des définitions PostgreSQL, en les vérifiant dans une base de données scratch et en fournissant des résultats au niveau de l’objet et une révision assistée par l’IA. Vous devez toujours valider le schéma généré par rapport aux exigences de votre application avant le déploiement.
- Conversion automatisée : réduit l’effort manuel en convertissant automatiquement les objets de schéma compatibles.
- Transformation basée sur l’IA : utilise des modèles de langage hébergés dans Microsoft Foundry pour prendre des décisions de conversion tenant compte du contexte.
- Vérifications de base de données temporaire : utilise la compilation et les vérifications statiques disponibles pour identifier les problèmes de conversion.
- Workflow intégré : fonctionne dans l’environnement de développement Visual Studio Code.
- Connectivité Oracle flexible : prend en charge les modes client minces et épais pour la connexion aux bases de données Oracle.
- Plusieurs options d’authentification : prend en charge l’authentification par clé API et par Microsoft Entra ID pour Microsoft Foundry.
- Révision et affinement : combine les notes de conversion, la comparaison entre la source et la cible, et les modifications assistées par Copilot.
- Optimisation Azure : conçue pour un serveur flexible Azure Database pour PostgreSQL.
Objets de schéma pris en charge
L’outil de conversion prend en charge un large éventail d’objets de schéma et de code Oracle, notamment les éléments de définition de données, les composants au niveau du schéma et le code procédural. Bien que vous puissiez convertir automatiquement de nombreux objets courants, vous devrez peut-être examiner ou personnaliser manuellement le mappage pour certaines fonctionnalités spécifiques à Oracle ou extensions propriétaires. Pour obtenir des listes détaillées des objets pris en charge et des limitations connues, consultez les sections de cet article.
Comment les conversions sont produites
Les modèles Microsoft Foundry traduisent le DDL Oracle extrait en définitions PostgreSQL. L'outil utilise la compilation sur une base de données temporaire et les vérifications statiques disponibles pour identifier les problèmes et guider les corrections.
Pour les routines PL/pgSQL, plpgsql_check fournit des vérifications statiques supplémentaires des corps de routine. Ces vérifications peuvent identifier les problèmes que la seule création de routines n’intercepte pas. Pour plus d’informations, consultez Valider pl/pgSQL converti avec plpgsql_check.
Un état converti n’est pas une garantie de réussite de la compilation, d’une implémentation complète ou d’un comportement d’exécution équivalent. Passez en revue les définitions d’objets et les notes de conversion dans le rapport HTML et l’explorateur d’objets de conversion, y compris les espaces réservés ou les dépendances qui ont besoin d’une attention manuelle. Pour connaître les lacunes spécifiques à Oracle, consultez les limitations de conversion de schéma.
Objets de schéma de base de données
L’outil de conversion prend en charge les objets de base de données Oracle suivants :
- Tables : définitions de table, spécifications de colonnes et contraintes au niveau de la table.
- Contraintes : clés primaires, clés étrangères, contraintes uniques et contraintes de vérification.
- Index : index B-tree, index uniques et index composites.
- Séquences : objets de séquence Oracle pour les valeurs auto-incrémentées.
- Déclencheurs : déclencheurs de ligne et d’instruction.
- Vues : vues de base de données standard.
- Vues matérialisées : vues matérialisées Oracle et logique d’actualisation.
- Schémas : objets et organisation au niveau du schéma.
- Synonymes : synonymes publics et privés (avec limitations).
Objets de code Oracle
L’outil de conversion prend en charge les constructions de code Oracle suivantes :
- Déclencheurs : logique de déclencheur complexe et gestion des événements.
- Packages : spécifications et corps des packages Oracle.
- Fonctions : fonctions définies par l’utilisateur avec une logique complexe.
- Procédures stockées : procédures stockées Oracle et gestion des paramètres.
-
Types et collections : types d’objets Oracle,
TYPE BODYméthodes membres,VARRAYtables imbriquées etSUBTYPEdéclarations.
Conversion de paquet
Les packages Oracle n’ont pas d’équivalent PostgreSQL direct. Les mappages générés dépendent des définitions sources, et vous devez passer en revue les membres du package et leurs appelants :
- Constantes : les fonctions getter générées ont besoin de la valeur, du type et de la volatilité correctes.
-
Collections et curseurs : les mappages peuvent utiliser des tableaux, des domaines,
jsonbourefcursor. Vérifiez les limites, l’indexation et les attentes de l’appelant. - État du package : les assistants générés et les paramètres de session nécessitent la validation de l’initialisation et de l’état entre les appels, les transactions et les sessions.
-
Exceptions : passez en revue le mappage des exceptions et codes d’erreur Oracle aux valeurs postgreSQL
SQLSTATEet aux gestionnaires d’exceptions. - Packages de spécification uniquement : la sortie peut contenir des routines d’espace réservé qui déclenchent une erreur plutôt que d’implémenter le corps manquant.
Requêtes hiérarchiques
Les requêtes hiérarchiques Oracle peuvent être représentées par des expressions de table communes PostgreSQL WITH RECURSIVE. Passez en revue la gestion générée des racines, des jointures parent-enfant, de la profondeur, des chemins, de l’ordre des éléments frères et des cycles. Une requête récursive qui compile n’établit pas que ses résultats correspondent à la requête Oracle d’origine.
Contrôle de transaction
La conversion de routines qui utilisent PRAGMA AUTONOMOUS_TRANSACTION peut dépendre d’une connexion distincte via dblink. Passez en revue la fonction ou la procédure générée, les extensions requises et toutes les modifications nécessaires dans ses appelants. Testez les limites des transactions, le contexte de connexion et de session, les validations, les annulations et la gestion des erreurs. Ne supposez pas que la compilation conserve le comportement de transaction d’origine ou les conventions d’appel.
Valider pl/pgSQL converti avec plpgsql_check
La création d’une routine PL/pgSQL ne valide pas chaque instruction qu’elle peut exécuter. Certaines références invalides ou incompatibilités de types n'apparaissent que lorsque le chemin d'exécution concerné est emprunté. L’extension plpgsql_check peut détecter des problèmes supplémentaires par le biais d’une analyse statique des corps de routine.
Utilisez ces vérifications en plus de la compilation, et non comme preuve d’une logique métier ou d’une préparation de production équivalentes. Passez en revue les définitions générées et effectuez la validation fonctionnelle et de données indépendamment.
Où s’exécute la vérification
La vérification s’exécute sur la base de données scratch que vous sélectionnez pour la conversion. Il examine les routines converties dans cet environnement, et non pas les données de production ni le trafic de l’application.
plpgsql_check est une aide de validation ; préparez séparément les extensions d’exécution requises par le code converti.
Que se passe-t-il lorsque l’extension n’est pas disponible
Sans plpgsql_check, les vérifications supplémentaires du corps ne sont pas disponibles. La compilation réussie ou un état converti ne signifie pas que ces vérifications ont été exécutées. Vérifiez la disponibilité de l’extension avant la conversion, puis examinez et testez les routines séparément même lorsque l’extension est installée.
Rendre la case à cocher disponible
Vérifiez la liste des extensions de votre version PostgreSQL, ajoutez plpgsql_check à la liste d’autorisation du serveur et configurez sa bibliothèque de préchargement requise. Redémarrez le serveur après avoir changé shared_preload_libraries, puis vérifiez que l’extension est installée dans la base de données scratch sélectionnée. Pour obtenir la procédure complète, consultez Autoriser et installer les extensions requises.
Versions d’Oracle prises en charge
Cette section récapitule les versions du moteur de base de données qui prennent en charge la conversion de schéma automatisée et met en évidence les considérations de compatibilité. Utilisez les versions d’Oracle et PostgreSQL prises en charge pour obtenir les meilleurs résultats. Validez les conversions dans un environnement de test hors production et utilisez le dernier correctif secondaire de chaque version majeure prise en charge. Si votre environnement utilise une version non prise en charge ou inclut des fonctionnalités propriétaires Oracle, vous devrez peut-être effectuer un mappage manuel supplémentaire ou passer en revue avant le déploiement.
Les versions de base de données Oracle suivantes prennent en charge la conversion de schéma :
- Oracle 21c
- Oracle 19c
- Oracle 18c
- Oracle 12.2
- Oracle 12.1
Commentaires et support
Pour les bogues, les demandes de fonctionnalités et les problèmes liés à la fonctionnalité de conversion de schéma ou à l’extension PostgreSQL, utilisez l’outil de commentaires intégré dans Visual Studio Code. Vous pouvez accéder à cet outil de deux façons :
Menu Aide
Accédez à Aide>Signaler un problème.
Palette de commandes
- Ouvrez la palette de commandes avec
Ctrl+Shift+P(Windows/Linux) ouCmd+Shift+P(macOS). - Exécutez la commande : PGSQL : Problème de rapport.
Lorsque vous créez votre problème ou fournissez des commentaires, incluez-le Schema Conversion: comme préfixe dans votre titre. Ce préfixe aide l’équipe de développement à identifier et hiérarchiser rapidement les commentaires liés à la conversion de schéma. Ce mécanisme de retour d’information aide l’équipe de développement à améliorer en permanence la fonctionnalité de conversion du schéma et à résoudre les problèmes que vous rencontrez lors de vos projets de migration d’Oracle vers Azure Database pour PostgreSQL.