Je me suis cogné la tête contre l' SQL Server 2005
idée de faire sortir beaucoup de données. On m'a donné une base de données avec près de 300 tables et je dois la transformer en base de données MySQL. Mon premier appel a été d'utiliser bcp mais malheureusement, il ne produit pas de CSV valide - les chaînes ne sont pas encapsulées, vous ne pouvez donc pas gérer les lignes contenant une chaîne avec une virgule (ou tout ce que vous utilisez comme délimiteur) et je devrais toujours écrire à la main toutes les instructions de création de table, car évidemment CSV ne vous dit rien sur les types de données.
Ce serait mieux s'il y avait un outil capable de se connecter à la fois à SQL Server et à MySQL, puis faites une copie. Vous perdez des vues, des procédures stockées, des déclencheurs, etc., mais il n'est pas difficile de copier une table qui n'utilise que des types de base d'une base de données à une autre ... n'est-ce pas?
Quelqu'un connaît-il un tel outil? Je ne me soucie pas du nombre d'hypothèses qu'il fait ou des simplifications qui se produisent, tant qu'il prend en charge les nombres entiers, flottants, datetime et string. De toute façon, je dois faire beaucoup d'élagage, de normalisation, etc.
Réponses:
Le meilleur moyen que j'ai trouvé est le MySQL Migration Toolkit fourni par MySQL. Je l'ai utilisé avec succès pour certains grands projets de migration.
la source
En utilisant MSSQL Management Studio, j'ai fait la transition de tables avec MySQL OLE DB. Faites un clic droit sur votre base de données et allez dans "Tâches-> Exporter les données" à partir de là, vous pouvez spécifier une source MsSQL OLE DB, la source MySQL OLE DB et créer les mappages de colonnes entre les deux sources de données.
Vous voudrez probablement configurer la base de données et les tables à l'avance sur la destination MySQL (l'exportation voudra créer les tables automatiquement, mais cela entraîne souvent un échec). Vous pouvez créer rapidement les tables dans MySQL en utilisant le menu "Tâches-> Générer des scripts" en faisant un clic droit sur la base de données. Une fois vos scripts de création générés, vous devrez parcourir et rechercher / remplacer les mots-clés et les types qui existent dans MSSQL vers MYSQL.
Bien sûr, vous pouvez également sauvegarder la base de données comme d'habitude et trouver un utilitaire qui restaurera la sauvegarde MSSQL sur MYSQL. Je ne sais pas s'il en existe un.
la source
Les éditions "Standard", "Developer" et "Enterprise" de SQL Server 2005 ont SSIS , qui a remplacé DTS de SQL Server 2000. SSIS a une connexion intégrée à sa propre base de données, et vous pouvez trouver une connexion pour laquelle quelqu'un d'autre a écrit MySQL. Voici un exemple. Une fois que vous avez vos connexions, vous devriez être en mesure de créer un package SSIS qui déplace les données entre les deux.
Je n'ai pas à déplacer les données de SQLServer vers MySQL, mais j'imagine qu'une fois la connexion MySQL installée, cela fonctionne de la même manière que le déplacement de données entre deux bases de données SQLServer, ce qui est assez simple.
la source
Faire rouler votre propre solution PHP fonctionnera certainement, même si je ne suis pas sûr qu'il existe un bon moyen de dupliquer automatiquement le schéma d'une base de données à l'autre (c'était peut-être votre question).
Si vous copiez simplement des données et / ou que vous avez de toute façon besoin de code personnalisé pour convertir entre les schémas modifiés entre les deux bases de données, je recommanderais d'utiliser PHP 5.2+ et les bibliothèques PDO. Vous pourrez vous connecter en utilisant PDO ODBC (et utiliser les pilotes MSSQL). J'ai eu beaucoup de problèmes pour obtenir de grands champs de texte et des caractères multi-octets de MSSQL vers PHP en utilisant d'autres bibliothèques.
la source
Un autre outil à essayer serait la suite SQLMaestro . Il est un peu difficile de déterminer l'outil précis, mais ils disposent d'une variété d'outils, gratuits et à l'achat, qui gèrent une grande variété de tâches pour plusieurs plates-formes de bases de données. Je suggérerais d'essayer d'abord l'outil Data Wizard pour MySQL, car je crois que cela aura le bon outil "d'importation" dont vous avez besoin.
la source