De nombreuses entreprises suivent la tendance moderne à long terme consistant à migrer les bases de données d’un SGBD commercial vers un équivalent open source gratuit afin de réduire le coût total de possession. À cette fin, PostgreSQL est le choix idéal parmi tous les systèmes de gestion de bases de données gratuits en raison des avantages suivants :
– il est 100% conforme au standard SQL
– il prend en charge la récupération à un moment précis
– il prend en charge des mécanismes de verrouillage sophistiqués
– il fournit des types de données avancés tels que des tableaux multidimensionnels et des données spatiales
Le moyen le plus simple de migrer manuellement ou semi-manuellement de SQL Server vers PostgreSQL est connu sous le nom de modèle d’extraction-transfert-chargement ou ETL. Il comprend les étapes suivantes :
– Toutes les entrées de la base de données SQL Server (définitions de table, index et contraintes) sont extraites sous forme d’instructions CREATE
– Ces éléments sont transformés pour se conformer à la syntaxe PostgreSQL des instructions CREATE (en ce qui concerne les règles de mappage des types et de dénomination) et chargés dans la base de données cible.
– Les données SQL Server sont extraites de la base de données source dans des fichiers CSV utilisés comme stockage intermédiaire externe
– Les fichiers CSV doivent être transformés pour respecter le format PostgreSQL lorsque cela est nécessaire (attention particulière aux dates et données binaires)
– La dernière étape consiste à charger les données résultantes dans la base de données PostgreSQL
Explorons maintenant chacune de ces étapes en détail. Pour extraire les définitions des tables SQL Server, ouvrez Microsoft SQL Server Management Studio, cliquez avec le bouton droit sur le nom de la base de données, puis cliquez sur l’élément de menu « Tâches > Générer des scripts ». Accédez à l’onglet « Définir les options de script » dans la fenêtre qui apparaît, cliquez sur le lien Avancé et sélectionnez « données et schéma » dans la section « Général ».
Le script résultant doit être modifié selon le format PostgreSQL comme suit :
– supprimer les crochets autour des types
– remplacez tous les crochets autour des noms des entrées de la base de données par des guillemets doubles
– remplacer toutes les occurrences du schéma SQL Server par défaut « dbo » par l’équivalent PostgreSQL « public »
– supprimez les mots-clés SQL Server facultatifs et non pris en charge par PostgreSQL (c’est-à-dire «WITH NOCHECK», «CLUSTERED»)
– supprimez toutes les spécifications du groupe de fichiers, par exemple « ON PRIMARY »
– remplacez le type de données SQL Server « INT IDENTITY(…) » par PostgreSQL « SERIAL »
– convertir les types qui ne sont pas pris en charge par PostgreSQL en équivalents (c’est-à-dire « DATETIME » devient « TIMESTAMP », « MONEY » devient NUMERIC(19,4))
– toutes les instructions « GO » utilisées pour terminer les requêtes SQL Server doivent être remplacées par des points-virgules « ; »
La prochaine étape pour migrer SQL Server vers PostgreSQL consiste à traiter les données, ce qui peut être réalisé à l’aide de Microsoft SQL Server Management Studio :
– Faites un clic droit sur la base de données à migrer, puis accédez au menu Tâches > Exporter les données
– À l’aide de l’interface intuitive de l’assistant, spécifiez « Fournisseur Microsoft OLE DB pour SQL Server » comme source de données et « Destination du fichier plat » comme destination.
Une fois l’exportation terminée, les données résultantes apparaîtront dans le fichier de destination spécifié selon le format CSV (valeurs séparées par des virgules).
Il est maintenant temps de charger les données des fichiers CSV vers les tables PostgreSQL via la commande « COPY » comme ceci :
COPY
Si vous recevez une erreur « Autorisation refusée », essayez plutôt la commande « COPY ».
Les étapes ci-dessus illustrent que la conversion manuelle est une procédure longue avec un risque élevé de perte ou de corruption de données. Heureusement, il existe des outils spéciaux qui peuvent migrer SQL Server vers PostgreSQL en quelques clics, rendant l’ensemble de la procédure fluide et sûr. L’une de ces solutions est le convertisseur MS SQL vers PostgreSQL, un programme doté de toutes les fonctionnalités nécessaires pour gérer la migration de bases de données volumineuses et complexes entre les deux SGBD. Il a été développé par Intelligent Converters, société de logiciels spécialisée dans les techniques de conversion et de synchronisation de bases de données depuis 2001.
Caractéristiques de base du convertisseur :
– Les schémas, données, séquences, index, contraintes et vues sont migrés de SQL Server vers PostgreSQL
– Toutes les versions modernes du SGBD sur site et les variantes possibles du SGBD sont prises en charge
– Fusion et synchronisation des bases de données PostgreSQL avec les données SQL Server
– Option de script et de planification de la migration de la base de données via la version en ligne de commande de l’outil
– Stocker la configuration de la migration terminée dans un profil pour simplifier le prochain lancement
Outre ces fonctionnalités de base, le convertisseur offre quelques fonctionnalités puissantes pour rendre la migration encore plus personnalisable. La première consiste à filtrer les données à migrer via des requêtes SELECT. Le convertisseur SQL Server vers PostgreSQL permet aux utilisateurs de composer une requête SELECT sur la base de données source, puis de migrer l’ensemble de lignes résultant comme s’il s’agissait d’une table normale. Cette option peut être utilisée pour filtrer les données, renommer des colonnes ou des tables, fusionner des données de plusieurs en une seule et bien d’autres tâches.
La fonctionnalité suivante est appelée « Modifier la table ». Il permet de personnaliser complètement la table résultante : modifier le nom, le type et les attributs de n’importe quelle colonne et exclure certaines colonnes de la migration. Il est implémenté via une fenêtre de dialogue dotée d’une interface intuitive et facile à utiliser, de sorte qu’aucune compétence technique n’est requise pour personnaliser entièrement la migration de la base de données.
Découvrez comment migrer SQL Server vers PostgreSQL et les solutions logicielles associées sur la page d’accueil d’Intelligent Converters.
