Présentation
Un processus de déploiement manuel pour les modifications de base de données est lent et sujette aux erreurs. Quelqu’un écrit un script, l’envoie par e-mail à l’administrateur de base de données et attend qu’il soit exécuté pendant une fenêtre de maintenance. Si un problème se produit, la restauration est difficile, car personne n’a suivi l’état exact du schéma avant la modification. Pendant ce temps, les développeurs travaillant sur différentes fonctionnalités remplacent les modifications des autres, car il n’existe aucun flux de travail structuré pour le code de base de données.
Imaginez une équipe qui gère une application de commerce électronique sur Azure SQL Database. Trois développeurs ajoutent des fonctionnalités qui nécessitent des modifications de schéma. On ajoute une nouvelle table de catégorie de produit, une autre modifie les procédures stockées de traitement des commandes, et une troisième met à jour les vues de recherche des clients. Sans contrôle de code source, les pipelines CI/CD et les tests automatisés, ces modifications entrent en collision. Un correctif logiciel appliqué directement en production perd sa synchronisation avec l’environnement de développement. Un déploiement remplace le correctif logiciel, ce qui provoque une panne de production pendant les heures de pointe.
Les projets SQL Database et les pipelines CI/CD résolvent ces problèmes en traitant le code de base de données avec la même rigueur que le code d’application. Vous effectuez le contrôle de version de chaque objet, automatisez les compilations et les déploiements, détectez lorsque la base de données en direct s’écarte du projet et testez les modifications avant qu’elles n’atteignent la production.
Une fois ce module terminé, vous pouvez :
- Créez, générez et validez des modèles de base de données à l’aide de projets de base de données SQL, y compris le style SDK.
- Configurez le contrôle de code source pour les projets SQL Database et gérez les données de référence avec des scripts de prédéploiement et de post-déploiement.
- Gérer les branches, les demandes de tirage et la résolution des conflits pour le code de la base de données.
- Détecter la dérive de schéma à l’aide d’outils de comparaison de schémas et sqlPackage.
- Implémentez des pipelines CI/CD avec GitHub Actions et Azure DevOps, notamment la gestion des secrets et les contrôles de déploiement.
- Concevez et implémentez une stratégie de test avec des tests unitaires et des tests d’intégration.