Apprendre à déployer aisément votre base de données SQL Server sur plusieurs instances
Un tutoriel de Agah Michel

Le , par michelagah

39PARTAGES

9  1 
Chers membres du club,
J'ai le plaisir de vous présenter ce tutoriel pour apprendre à déployer aisément votre base de données SQL Server sur plusieurs instances.


En tant qu'administrateurs de bases de données (DBA), nombreux sommes-nous qui avons été au moins une fois confrontés aux défis du redéploiement de notre base de données sur plusieurs instances SQL Server. L'objectif de cet article est d'offrir une approche permettant aux DBA et développeurs SQL de faire évoluer leur application en maîtrisant toutes les contraintes liées au déploiement des mises à jour de base de données dans une architecture de base de données multi-instance comportant un serveur de Développement, de Test, de Préproduction ou Staging et de Production.

L'approche décrite dans le présent article permettra d'assurer non seulement une traçabilité du code dans la création, la modification et la suppression des objets de la base de données, mais aussi de garantir un déploiement rapide et efficient des mises à jour de la base de données.
Bonne lecture et n'hésitez pas à apporter vos commentaires

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de SQLpro
Rédacteur https://www.developpez.com
Le 26/06/2017 à 16:41
Bonjour,

Tout d'abord je comprends mal l'utilisation de commande système de type CMD (fichier .BAT) là ou il aurait été très avantageux d'utiliser PowerShell.

Horreur absolue, l'utilisation dans le script "Produts.SQL" de tables systèmes parfaitement obsolète (sysobjects). En effet depuis la version de 2005 de SQL Server, cette table ne donne pas les bonnes informations et est considérée comme obsolète et doit être remplacée soit par la vue système sys.objects ou par la vue normalisée INFORMATION_SCHEMA.TABLES. Comme vous utilisez par ailleurs pas mal les objets du schéma INFORMATION_SCHEMA, mieux vaut donc utiliser ce dernier !

Il y a enfin quelque chose que je ne comprends pas... Pourquoi un mélange d'anglais et de français, comme par exemple dans le choix des noms de table ou l'on trouve CLIENTS (nom français avec un S final) et SALES terme anglais ? Soit vous mettez tout en anglais pour faire "mode" soit tout en français et vu que developpez.com est un site web français, cela aurait été plus sympathique vis à vis des gens qui ne maîtrisent pas l'anglais....

Je sais, je suis impitoyable....
Avatar de michelagah
Membre habitué https://www.developpez.com
Le 28/06/2017 à 0:22
Merci SQLPro pour ta contribution.
Venant d'un MVP, je ne peux que m'incliner. Cependant, j'aimerais préciser que tous les noms des tables sont bien en anglais. CLIENTS est un mot anglais au même titre que les noms des autres tables PRODUCTS et SALES. Tu as absolument raison, j'aurais dû les traduire en français mais j'avoue que j'y avais pas pensé.

Pour les autres éléments notamment les commande systèmes et l'utilisation des objets du schéma INFORMATION_SCHEMA, tu as parfaitement raison mais je pense que ce n'est aussi horrible que ça d'utiliser les objets systèmes qui comme tu l'as si bien dit appartiennent peut-être a une version de SQL Server que, j'en suis sure, certains des lecteurs utilisent toujours. Je tiens à préciser que Ce tutoriel vise a partager l'approche et donc la qualité du code reste subjectif et je pèse mes mots.

Merci tout de même cher SQLPro pour ta contribution un peu sévère quand même j'avoue pour un premier article mais elle m'aidera certainement à m'améliorer.
Avatar de SQLpro
Rédacteur https://www.developpez.com
Le 28/06/2017 à 14:52
Citation Envoyé par michelagah Voir le message
Merci SQLPro pour ta contribution.
Venant d'un MVP, je ne peux que m'incliner. Cependant, j'aimerais préciser que tous les noms des tables sont bien en anglais. CLIENTS est un mot anglais au même titre que les noms des autres tables PRODUCTS et SALES. Tu as absolument raison, j'aurais dû les traduire en français mais j'avoue que j'y avais pas pensé.
ça doit être ton côté américain... ;_)


Pour les autres éléments notamment les commande systèmes et l'utilisation des objets du schéma INFORMATION_SCHEMA, tu as parfaitement raison mais je pense que ce n'est aussi horrible que ça d'utiliser les objets systèmes qui comme tu l'as si bien dit appartiennent peut-être a une version de SQL Server que, j'en suis sure, certains des lecteurs utilisent toujours. Je tiens à préciser que Ce tutoriel vise a partager l'approche et donc la qualité du code reste subjectif et je pèse mes mots.

Merci tout de même cher SQLPro pour ta contribution un peu sévère quand même j'avoue pour un premier article mais elle m'aidera certainement à m'améliorer.
Qui aime bien châtie bien !!!!!

A +
Avatar de acbdev
Membre régulier https://www.developpez.com
Le 16/02/2018 à 11:25
Bonjour,

Je trouve votre tutoriel intéressant. J'utilise une autre technique pour déployer aisément des bases sur différents environnements : le projet SQL Server à partir de Visual Studio. Pratique pour voir les différences entre notre projet et la structure de la base dans chaque environnement. L'intérêt du projet est de pouvoir le sauvegarder via TFS ou Git avec la gestion de version. Il me semble qu'il existe un tutoriel sur ce site.
Il m'arrive aussi de générer les scripts de schéma (structure et non regroupement d'objets de la base) de bases de données à partir de management studio (clic-droit sur la base, tâches...). Il faut cliquer sur le bouton 'avancé' pour les options de la génération du script dont les scripts de déclencheurs qui ne sont pas générés, par défaut.

 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web