Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Outils
Outils Forum d'entraide sur les outils gravitant autour de MS-SQL Server, tels que bcp, TDS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 15h47   #1
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Par défaut Contrôle de version

Bonjour,

Existe-t-il un outil permettant de faire du versionning sur
- Des objets d'une base de données ? (mise à jour des vues, procédures, etc.)
- De la structure de la base ? (création de tables, suppression de colonne, etc.)
- Des données ? (possibilité de revenir en arrière après modifications de données, rejouer des mises à jour, etc.)

Mise à part VSS, existe-t-il un outil capable de gérer du versionning de code, structure et si possible de data avec SQL Server ?
Avec Oracle ?
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 16h20   #2
Membre chevronné
 
Avatar de Oishiiii
 
Administrateur de base de données
Inscription : août 2009
Messages : 404
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : août 2009
Messages : 404
Points : 643
Points : 643
Citation:
Envoyé par StringBuilder Voir le message
Lors de l'installation de SQL Server 2008 R2 Express, j'ai remarqué qu'il installait des services "VSS". VSS pour Visual Source Safe, l'outils de versionning de Microsoft.
Vous en êtes sûr ?

Après installation d'SQL Server il y a bien un service nommé "SQL Server VSS Writer".

VSS pour Volume Shadow Copy Service.
http://technet.microsoft.com/en-us/l.../ms175536.aspx
Oishiiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 16h31   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Ce service VSS sert à permettre des sauvegardes de machine virtuelles cohérente pour SQL Server. Sans cela si vous êtes sur un VM, la sauvegarde de la machine produira des bases qui seront corrompues.

En effet, SQL Server écrit des données de manière synchrone entre les fichiers de données et ceux du JT. Mais en copiant les fichiers successivement, la sauvegarde de VM casse ce mécanismes. VSS intervient alors sur votre demande afin de geler les fichiers de la base le temps de cette sauvegarde (la base devient lisible, mais aucune opération d'écriture ne peut plus se faire...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 17h12   #4
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Citation:
Envoyé par Oishiiii Voir le message
Vous en êtes sûr ?

Après installation d'SQL Server il y a bien un service nommé "SQL Server VSS Writer".

VSS pour Volume Shadow Copy Service.
http://technet.microsoft.com/en-us/l.../ms175536.aspx
Hmpf

Quelle idée aussi d'utiliser les mêmes initiales

Bon, ben donc c'est mal barré...
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h19   #5
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Sinon, pour en revenir au fond de la question, existe-t-il des outils permettant de suivre les modifications apportées à une base de données :
- Au niveau des objets (PS, fonctions, vues, triggers, etc.)
- La structure (tables, colonnes, index, foreign keys, etc.)
- Les données (mises à jour, suppression)

Et qui permette, à l'image de SVN, de revenir à un état donné ou d'identifier des modifications apportées ?

La problématique étant simple :
Je travaille actuellement sur un outil chez un client. Il nous arrive régulièrement de :
- Dupliquer des tables en production (sauvegarde ponctuelle de données avant une modification). Outre la règle de nommage mal respectée, nous n'avons aucun moyen de savoir quand une telle table a été crée et par qui : le nettoyage est donc complexe, d'autant que certaines de ces tables servent ensuite de table temporaire pour des traitements...
- Sur la DEV, modification par plusieurs personnes en même temps, dans le cadre de plusieurs mini-projets, des mêmes vues/triggers/ps. Lorsqu'un projet est validé et doit passer en production, c'est la croix et la bannière pour retrouver si d'autres personnes ont modifié l'objet en même temps, afin de savoir si on doit retirer des partie du code, en merger d'autre, etc.
- Sur la DEV, on fait régulièrement des modifications au niveau des données dans les tables de paramétrage. De la même façon, lors des reports en prod, il est assez complexe de retrouver ce qu'il faut mettre en production.

Actuellement, chacun notre dans des fichiers SQL l'ensemble des changement de données du paramétrage, de façon à rejouer lors de la mise en production. Ca a une limite : si on modifie (ou réutilise) le paramétrage d'une autre personne sur un autre développement, et qu'on passe en production sans que l'autre développement soit validé, on n'a aucun moyen de contrôler les autres modifications du paramétrage.

Lors de duplication de tables, on a pour norme de créer la table avec pour suffixe nos initiales et la date du jour... sauf que c'est pas toujours suivit, et on se retrouve avec des suffix "bis", "2", "tmp" etc. qui ne permettent pas de s'assurer qu'il s'agit de backup et non pas de tables temporaires pour des traitements.

Et sur le serveur, on trace dans des fichiers communs chaque objet de la base de données (un fichier SQL par vue, trigger, etc.) qu'on documente à tours de bras.

J'ai dans l'idée de proposer de mettre un SVN pour ces derniers fichiers (afin d'avoir une vision plus précise des modifications que les commentaires dans le code), mais pour les autres points, je n'ai aucune idée de comment faire.

Un outils permettant de tracer tout ça nous serait d'une grande aide...

Ou éventuellement, si certains d'entre vous ont des procédures éprouvées pour suivre ce genre de modifications, je suis preneur.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h28   #6
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 470
Points : 2 470
Envoyer un message via Yahoo à zinzineti
Un outil de gestion propre à SQL SERVER je n'en connais pas. Par contre il est possible de mettre en place une base de données de gestion des versions des objets (tables, index,procédures,fonctions,...) à condition que tous les acteurs (Développeurs, DBA, ...) jouent le jeu. Pour ce qui concerne le suivi des la modifications au niveau des tables, colonnes, ... il est possible d'ajouter des métadonnées (date de création, dates de modification, commentaires, ....) là encore il faut que tous les acteurs jouent le jeu
métadonnées niveau table
metadonnées niveau colonne
métadonnées niveau database
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 13h48   #7
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
En effet, les méta données sont une solution, mais à la limite, je préfère notre technique actuelle : recopier les scripts SQL dans un dossier, et intégrer le dossier à SVN.

Pourquoi ?
Parce que les métadonnées on pour limitations :
- Fastidieux à mettre à jour (il n'y a pas IHM pour le faire)
- Mise à jour non automatisée (si je le fais pas à la main, ça se fait pas tout seul)
- Pas de notion de version des métadonnées ni de notion d'horodatage des modifications
- Pas de notion de différenciel entre deux versions du contenu du code

Donc quitte à demander aux personnes de jouer le jeu, je préfère que ce soit au niveau d'un dossier suivit dans SVN : au moins, même en l'absence de commentaires explicites, on peut tracer qui à fait quelle modification dans quel fichier et quand, à coup sûr (du moment qu'il a mis à jour le script).

En fait, ce que je cherche, c'est à la limite un programme qui surveille les modifications des objets SQL, génère le script, et le pousse sur un SVN. Ce qu'on fait aujourd'hui à la main.

Je me demande d'ailleurs si ce serait pas un truc à développer...

On peut ajouter des triggers utilisateur sur les tables systèmes, genre "sysobjects" ?
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h17   #8
Membre chevronné
 
Avatar de Oishiiii
 
Administrateur de base de données
Inscription : août 2009
Messages : 404
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : août 2009
Messages : 404
Points : 643
Points : 643
Il me semble que les AGL de type PowerAMC permettent de faire ce genre de chose (menu "Référentiel").
Oishiiii est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2011, 15h06   #9
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 470
Points : 2 470
Envoyer un message via Yahoo à zinzineti
Citation:
Envoyé par StringBuilder Voir le message
En effet, les méta données sont une solution, mais à la limite, je préfère notre technique actuelle : recopier les scripts SQL dans un dossier, et intégrer le dossier à SVN.

Pourquoi ?
Parce que les métadonnées on pour limitations :
- Fastidieux à mettre à jour (il n'y a pas IHM pour le faire)
- Mise à jour non automatisée (si je le fais pas à la main, ça se fait pas tout seul)
- Pas de notion de version des métadonnées ni de notion d'horodatage des modifications
- Pas de notion de différenciel entre deux versions du contenu du code

Donc quitte à demander aux personnes de jouer le jeu, je préfère que ce soit au niveau d'un dossier suivit dans SVN : au moins, même en l'absence de commentaires explicites, on peut tracer qui à fait quelle modification dans quel fichier et quand, à coup sûr (du moment qu'il a mis à jour le script).

En fait, ce que je cherche, c'est à la limite un programme qui surveille les modifications des objets SQL, génère le script, et le pousse sur un SVN. Ce qu'on fait aujourd'hui à la main.

Je me demande d'ailleurs si ce serait pas un truc à développer...

On peut ajouter des triggers utilisateur sur les tables systèmes, genre "sysobjects" ?
Si mes souvenirs sont bons, il me semble que Visual Source Safe (VSS) peut être plugé dans SSMS pour gérer les versions des objets. Le probleme est que VSS est payant.
En fouillant un peu j'ai trouvé cet outil sur codeplex qui n'est pas mal. A tester
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 17h02   #10
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Oui SVN peut être utilisé. Dans l'idée on peut même utilisé TFS de Microsoft pour faire cela.

++
mikedavem est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 17h59   #11
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Citation:
Envoyé par StringBuilder Voir le message
Avec Oracle ?
Ce n'est pas le bon forum pour la question, mais la réponse est une fonctionnalité de la 11gR2 :
http://www.oracle.com/technetwork/da...n-1-133045.pdf
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h36.


 
 
 
 
Partenaires

Hébergement Web