|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
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 ? |
|
|
00
|
|
|
#2 | |
|
Membre chevronné
![]() Administrateur de base de données Inscription : août 2009 Messages : 404 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
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 * * * * * |
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Citation:
Quelle idée aussi d'utiliser les mêmes initiales Bon, ben donc c'est mal barré... |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
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. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() |
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 |
|
00
|
|
|
#7 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
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" ? |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : août 2009 Messages : 404 ![]() |
Il me semble que les AGL de type PowerAMC permettent de faire ce genre de chose (menu "Référentiel").
|
|
|
10
|
|
|
#9 | |
|
Membre Expert
![]() ![]() |
Citation:
En fouillant un peu j'ai trouvé cet outil sur codeplex qui n'est pas mal. A tester |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Oui SVN peut être utilisé. Dans l'idée on peut même utilisé TFS de Microsoft pour faire cela.
++ |
|
00
|
|
|
#11 |
![]() ![]() |
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 |
|
00
|
Copyright © 2000-2012 - www.developpez.com