8
votes

SQL Server à Postgres

Je fais des recherches sur la migration de Microsoft SQL Server à PostgreSQL et à la recherche des meilleurs outils pour obtenir le travail effectué.

Vous recherchez spécifiquement un outil similaire à la boîte à outils MySQL Migration, j'ai effectué une migration de testances de nos bases de données sur MySQL et que chacune d'entre elles était de moins d'une heure.

On dirait que Pgadmin fera la majeure partie de ce faisant avec SQL Server Management Studio et les tables PG_STAT seront suffisamment bonnes pour le réglage des performances.

Alors, quels sont les autres outils clés que tout le monde utilise lorsque vous développez et travaillant avec PostgreSQL?


2 commentaires

Je vous félicite de votre décision de m'éloigner du verrouillage du vendeur propitiatoire.


Plus d'un coup de suite d'énormes frais de licence du vendeur si nous pouvons.


5 Réponses :


4
votes

Peut-être que ces liens / outils seraient utiles?

http://wiki.postgresql.org/wiki/microsoft_sql_server_to_postgresql_migration_by_ian_harding

http://www.swissql.com/products/datamigration/data -migration.html

http://codebetter.com/blogs/karlseguin/archive/2009/10/22/migration-a-postgresql-with-my-friend-nibernate.aspx

http://www.enterPriseb.com/products/postgres_plus_as/overview.do


0 commentaires

3
votes

Dans la migration postgregesql d'une version à une autre qui n'avait aucun outil pour cela, j'ai utilisé un seul outil, UNIX'S SED.

Ma recommandation est de simplement exporter le SQL. Nettoyez les excentriques spécifiques du client d'exportation (généralement dans les commentaires), puis essayez de l'importer dans une base de données SQL et de voir ce qui se passe. Les erreurs sont vos directives. Utilisez SED pour passer dans le fichier MSSQL et sortir le fichier SQL Postgres SQL corrigeant les erreurs. Une fois que vous êtes dans un environnement fonctionnel, regardez les données elles-mêmes, certaines choses peuvent être autres que prévu. Après testiculation et correction supplémentaire, vous êtes prêt à partir.


2 commentaires

Cela va être un peu douloureux sur des tables avec des millions d'enregistrements, mais je peux finir par écrire un petit script pour vous connecter à la fois aux bases de données et déplacez les données.


Cela pourrait travailler plus doux. Le nombre d'éditions que vous avez à voir avec SED n'est pas trop. Les lignes sont difficiles à fabriquer parfois comme des expressions régulières. Mais vous résolvez essentiellement un type de problème à la fois, au lieu de chaque question individuelle un sur un. J'aurais aimé avoir le script que j'ai écrit, je posterais comme exemple. Si vous êtes une expression de Reg Expression Guru Tho, c'est assez facile. Bonne chance :)



2
votes

Je suis d'accord avec Chisum. J'exporterais les données de MSSQL en tant que script SQL (ou sous-ensemble s'il est énorme - peut-être une table à une époque ou de petites gammes); et essayez de le courir contre Postgres; et voyez ce qui se passe. Vous devrez peut-être écrire un SED ou un petit script Perl s'il y a des gnarlies pour que cela fonctionne bien, mais je ne m'attendrais pas à ce qu'elle soit ridicule.

Importez les données dans Postgres et voyez ce qui se passe. Vous êtes susceptible de rencontrer plus de problèmes avec la structure de la table, des indices et des références que d'autres choses.

Theres Quelques informations sur le site Web des postgres ici: http://wiki.postgresql.org/ wiki / converting_from_other_databases_to_postgresql # Microsoft_SQL_SERVER


0 commentaires

0
votes

Cela dépend de ce que vous devez convertir exactement de SQL Server en PostgreSQL. Si vous parlez du processus DDL et de conversion de données uniquement, vous pouvez essayer d'exporter tout avec SQL Server Management Studio comme suggéré, essayez d'exécuter ce script dans la base de données PostgreSQL via l'utilitaire PGADMIN ou PSQL et essayez de résoudre les erreurs déclenchées pendant l'importation. . Mais veuillez noter que même dans ce cas, il pourrait y avoir des problèmes avec la conversion de mots réservés, la conversion d'identité, la conversion de colonnes calculées, la conversion de données multilingue, la conversion des index en cluster et d'autres. Je ne sais pas si REGEXP peut vous aider à résoudre les problèmes liés à la conversion de ces caractéristiques.

Si vous parlez de la conversion des logiques d'entreprise, comme des déclencheurs, SPS, UDFS, alors il y aura beaucoup plus de problèmes dans le processus de conversion global, même en utilisant les utilitaires libres existants qui effectuent la migration pour les bases de données SQL Server à PostgreSQL. , comme la syntaxe et les techniques de spécification et de maintenance de cette opération ou de cette opération dans les deux bases de données sont vraiment différentes. Même si vous êtes un véritable gourou dans Regexp dans un tel cas, il sera vraiment difficile d'automatiser le changement de code ou le code de recensement à l'appui de spécificités de la base de données source. Les caractéristiques les plus courantes sont les suivantes: fonctions intégrées, requêtes hiérarchiques, traitement des erreurs, traitement des transactions, résultats de résultats et transformation, Dynamic-SQL, Déclencheurs de relevé Conversion et beaucoup d'autres.

Donc, en fonction de vos besoins, vous pouvez utiliser les solutions gratuites, que, dans la plupart des cas, nécessitent des efforts manuels importants supplémentaires dans le processus de conversion.


0 commentaires

0
votes

Liquibase peut vous aider à convertir le schéma de MS SQL au schéma spécifique PostgreSQL. (peu d'interventions manuelles requises, mais c'est tout à fait utile) Pour la migration des données, vous pouvez exporter le serveur SQL en CSV et l'importer en PostgreSQL.


0 commentaires