Versioning sql et sql compare

On m’a conseillé dernièrement un outil pour faire du sql compare et en cherchant un peu plus loin, je me rends compte que l’outil propose plein d’autres options et notamment, la possibilité de faire du versioning sql ! et ça c’est cool !

Il s’agit de sql source control de redgate, qui possède d’ailleurs une série d’outils hyper pratiques pour les développeurs et DBA :

  • SQL compare pour identifier rapidement des changements de structures sql et même un data compare
  • SQL Search pour faire des recherches sur vos objets sql et retrouver facilement une procédure stockée par exemple, sans la connaître
  • SQL doc pour intégrer une doc à vos bases de données
  • Générer automatiquement des schémas de dépendance, pratique pour mesurer les impacts
  • Générer des packages sql pour vos mises en prod
  • Même un sdk pour automatiser vos déploiements et donc faire de l’intégration continue :p
  • SQL intellisense mais moins utile depuis la version 2K8 de sql server
  • y’a encore pas mal d’outils, notamment un outil de monitoring et de backup

J’ai pas encore tout testé, mais SQL compare et SQL source control sont vraiment top ! et vont grandement me faciliter et fiabiliser mes processus de mise en PPROD et PROD.

Les outils sont hyper simples à mettre en place et à utiliser, et le source control, est même compatible avec TFS et SVN !

SQL Compare

On lance l’outil, et on peut comparer plusieurs types de sources. Base de données, mais aussi backup, un snapshop ou même source control

Saisissez les données, comme par exemple le serveur de dev et pprod ou pprod et prod

il détecte automatiquement vos changements (tables, vues, ps, index …)

Et bien évidement, la génération du script pour appliquer la modification

ou bien utiliser le wizard pour appliquer les changements sur l’un des serveurs sql

SQL Source control

Il existe 2 modes :

  1. soit chaque dev possède sa base de données et centralise tout dans le dépôt (comme c’est généralement le cas pour le code source)
  2. soit tous les devs développent sur la même base de données

Pour configurer l’outil c’est easy, ouvrez sql manager, sélectionnez votre base de données puis cliquez sur SQL source control. il faut dans un 1er temps « linker » la base de données avec source contrôle et aussi préciser le dépôt, dans mon cas SVN

Des petites icônes apparaissent sur vos objets sql, un petit peu comme Tortoise SVN 😉

La première fois, comme pour le code, il faut faire un commit pour envoyer tous les objets au dépôt

Une fois commité, comme pour Toirtoise, tout redevient vert

Ensuite, par exemple je modifie une table, et je retourne dans l’onglet commit, il détecte automatiquement les changements et propose de commiter (versioning classique)

On peut faire des revert, des updates, des show log … et même rollback à une version antérieure

top du top du top