Comment valider la base de données des clients par rapport à mon schéma de base de données?

StackOverflow https://stackoverflow.com/questions/606500

Question

Nos clients utilisent des bases de données SQLServer / Oracle. Au fil des ans, nous leur avons envoyé de nombreux scripts de mise à jour qu’ils devaient exécuter manuellement. La plupart du temps, tout s'est bien passé, mais de temps en temps, un script ne fonctionnait pas complètement ou comportait des erreurs (qui n'étaient pas détectées au moment de la mise à niveau). De même, parfois, même les "utilisateurs intelligents" ajouté des index / des tables dans ces bases de données elles-mêmes, pour une raison quelconque. Plus tard, ces irrégularités créent des problèmes.

J'ai maintenant été chargé de trouver un moyen de vérifier / valider les bases de données de nos clients par rapport à notre propre schéma de base de données (tables, types de données, index, vues, ...). Le résultat devrait être une sorte de fichier de différences indiquant ce qui manque / ce qui ne devrait pas être dans la base de données. Je pourrais le faire en code (C ++) à partir de notre application ou créer un outil externe uniquement dans ce but.

Maintenant, avant de commencer à coder, je voulais demander s’il existait déjà un outil qui produirait les résultats nécessaires, ou au moins qui pourrait m’aider à produire un fichier xml décent à partir de nos bases de données maîtres (Oracle et SQLServer). ? Ou existe-t-il une bibliothèque qui pourrait m'aider à écrire mon propre outil?

Était-ce utile?

La solution

J'ai déjà utilisé cette technique et elle ne nécessite aucun outil.

Enterprise Manager dispose du " Créer un script " fonctionnalité. Effectuez cette opération sur votre base de données de référence et la base de données de comparaison. Sélectionnez les options appropriées pour générer des scripts pour les objets qui vous intéressent. Ensuite, comparez simplement les deux fichiers générés avec votre outil de diff préféré.

Vous pouvez effectuer une procédure similaire avec les outils Oracle qui vous permettent d’exporter les scripts DDL.

Autres conseils

Il existe trois options utilisant les outils de Red Gate:

  1. Demandez à votre client d’effectuer la comparaison. Vous auriez besoin de convaincre votre clients d'acheter une licence SQL Comparez et envoyez-leur un schéma instantané de votre base de données.
  2. Écrivez votre propre application avec Red SDK de comparaison SQL de Gate (595 USD pour 10 distributions) pouvant être exécutées sur le site du client.
  3. Demandez à votre client de vous envoyer un instantané du schéma et lancez vous-même la comparaison en utilisant votre propre copie de SQL Compare. Porte rouge fournit un outil gratuit d'instantané de schéma appelé SQL Snapper qui va créer des instantanés qui peuvent ensuite vous être envoyés par courrier électronique par votre client. Comme cela n'inclut aucune donnée, il se peut que votre client soit disposé à en tenir compte.

L'outil SQL Snapper et l'exemple de code du kit de comparaison SQL peuvent être téléchargés à partir de notre site Web labs.red-gate.com.

La compatibilité Oracle est maintenant disponible sous la forme d’une version d’accès anticipé. Si vous êtes intéressé ou souhaitez utiliser l'outil, visitez la page du produit . Vous pouvez l'utiliser gratuitement jusqu'à la sortie complète de l'outil.

David Atkinson, chef de produit, logiciel Red Gate.

Nous utilisons Redgate SQL Compare pour cela et cela nous a bien servi au fil des ans.

Nous utilisons également Redgate SQL Data Compare pour comparer le contenu des tables de recherche.

Les personnes chez Redgate ont un excellent outil appelé Comparaison SQL . .

Pouvez-vous créer un vidage de schéma tel que SHOW de MySQL CRÉER DES TABLES ?

Si vous utilisez Windoze, j'utilise Advanced Query Tool depuis des années et je peux attester que, pour son argent, il fait plus que toute autre chose. En particulier, il générera un rapport diff entre les bases de données. Il s'agit d'ODBC / VB6 et peut s'exécuter sur des dizaines de bases de données. Vérifiez-le. (Non, je ne suis pas de QueryTool et je n'en possède aucune partie, mais un client heureux.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top