IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils SQL Server Discussion :

Contrôle de version


Sujet :

Outils SQL Server

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    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 ?
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    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

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    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é...
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    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.
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    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

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    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" ?
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Il me semble que les AGL de type PowerAMC permettent de faire ce genre de chose (menu "Référentiel").

  9. #9
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    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

  10. #10
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Oui SVN peut être utilisé. Dans l'idée on peut même utilisé TFS de Microsoft pour faire cela.

    ++

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    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

Discussions similaires

  1. SAS et CVS (système du contrôle de version)?
    Par green_fr dans le forum Administration et Installation
    Réponses: 1
    Dernier message: 30/09/2008, 17h52
  2. outil de gestion de conf ou système de contrôle de versions
    Par pimos dans le forum Général Dotnet
    Réponses: 13
    Dernier message: 15/05/2007, 15h42
  3. Cherche système de contrôle de versions écrit en php
    Par f56bre dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/04/2007, 17h58
  4. [Général]Mise en oeuvre contrôle de version
    Par fbu78 dans le forum Access
    Réponses: 6
    Dernier message: 29/03/2007, 14h24
  5. Contrôle de version de l'application = Subversion ?
    Par Revan777 dans le forum Autres
    Réponses: 7
    Dernier message: 19/01/2006, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo