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

MS SQL Server Discussion :

Environnement de développement.


Sujet :

MS SQL Server

  1. #1
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut Environnement de développement.
    Bonjour à tous,

    Nous venons de migrer notre base dorsale Access vers SQL Server 2008 express et tout s'est bien passé. La base frontale reste sous Access (.mde).

    Je tente de mettre en place un environnement de développement confortable afin de pouvoir travailler sur une base de développement (étant la copie de la base réelle à un instant donné) et, ensuite, copier les évolutions de la base de développement sur la base de production, sans avoir à tenir à jour une liste des évolutions effectuées.

    Ne pouvons-nous pas dissocier les tables, d'une part, des procédures stockées, vues et fonctions, d'autre part, afin de ne pas les perdre lors des sauvegardes/restaurations ?

    En effet, la structure des tables s'effectue toujours sur la base de production (ajout de champ, principalement) et jamais sur la base de développement, alors que la création/modification des procédures stockées, vues et fonctions s'effectue toujours sur la base de développement et jamais sur base de production.

    Il faudrait pouvoir :
    - copier les tables (structures et données) de l'environnement de production vers l'environnement de développement afin de développer à partir des tables à jour ;
    - copier les procédures stockées et/ou les vues et/ou les fonctions de l'environnement de développement vers l'environnement de production afin que les utilisateurs bénéficient des évolutions.

    Merci d'avance de votre aide,
    Richard.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 790
    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 790
    Points : 52 815
    Points
    52 815
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Ne pouvons-nous pas dissocier les tables, d'une part, des procédures stockées, vues et fonctions, d'autre part, afin de ne pas les perdre lors des sauvegardes/restaurations ?
    Comme son nom l'indique une procédure stockée est stockée dans la base (table système) la sauvegarde d'une base comporte donc tout : les tables, les vues, les données, les procédures, les fonctions, les déclencheurs....

    Citation Envoyé par Richard_35 Voir le message
    En effet, la structure des tables s'effectue toujours sur la base de production (ajout de champ, principalement) et jamais sur la base de développement, alors que la création/modification des procédures stockées, vues et fonctions s'effectue toujours sur la base de développement et jamais sur base de production.
    Mauvaise pratique, car vous n'êtes pas à l'abri d'une fausse manip qui corrompe vos données ! De plus, compte tenu de la journalisation des opérations de DDL, vous risquez de saturer inopinément le JT.

    Citation Envoyé par Richard_35 Voir le message
    Il faudrait pouvoir :
    - copier les tables (structures et données) de l'environnement de production vers l'environnement de développement afin de développer à partir des tables à jour ;
    Si vous utilisez un outlde modélisation comme Power AMC, ce dernier est capable de faire des script SQL différentiel (mise à jour de l'architecture de la base) et de contenir l'état de votre base dans ses différentes versions.

    Citation Envoyé par Richard_35 Voir le message
    - copier les procédures stockées et/ou les vues et/ou les fonctions de l'environnement de développement vers l'environnement de production afin que les utilisateurs bénéficient des évolutions.
    Il vaudrait mieux que ces opérations soient faites conjointement avec les modif de structures, l'une pouvant avoir besoin de l'autre !

    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/ * * * * *

  3. #3
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour SQLpro,

    Merci de ta réponse.

    Comme son nom l'indique une procédure stockée est stockée dans la base (table système) la sauvegarde d'une base comporte donc tout : les tables, les vues, les données, les procédures, les fonctions, les déclencheurs....
    OK, j'avais bien compris que si cette dissociation est possible, ce n'est pas la sauvegarde/restauration qui convient. Néanmoins, je pense que tu as compris l'esprit de mon besoin.

    Mauvaise pratique, car vous n'êtes pas à l'abri d'une fausse manip qui corrompe vos données ! De plus, compte tenu de la journalisation des opérations de DDL, vous risquez de saturer inopinément le JT.
    Je comprends. Je viens d'un système où les ajouts de champs dans une table étaient compliqués à effectuer, c'est pourquoi j'apprécie cette fonctionnalité "temps réel". Effectivement, c'est une manoeuvre toujours délicate à effectuer : elle doit donc rester limitée au responsable BD. A noter que je n'a jamais eu aucun problème avec cette opération (test éventuel préalable sur une base de test).
    Quelle serait, selon toi, la procédure à appliquer pour ajouter un champ dans une table ?

    Si vous utilisez un outlde modélisation comme Power AMC, ce dernier est capable de faire des script SQL différentiel (mise à jour de l'architecture de la base) et de contenir l'état de votre base dans ses différentes versions.
    Non, je n'utilise pas d'outil de modélisation.

    Il vaudrait mieux que ces opérations soient faites conjointement avec les modif de structures, l'une pouvant avoir besoin de l'autre !
    Tu as raison. Il s'agit de notre responsabilité (gestionnaire BD/développeurs) de coordonner ces opérations : nous savons faire.

    Visiblement, un script pourrait faire l'affaire :
    script 1 :
    copie des tables (structures et données) de l'environnement de production vers l'environnement de développement ;

    script 2 :
    copier les procédures stockées, vues et fonctions de l'environnement de développement vers l'environnement de production.

    Si tu as une piste pour exploiter les tables "système" et écrire ces 2 scripts, je suis preneur.

    Merci de ton (votre) aide,
    Richard.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 790
    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 790
    Points : 52 815
    Points
    52 815
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Visiblement, un script pourrait faire l'affaire :
    script 1 :
    copie des tables (structures et données) de l'environnement de production vers l'environnement de développement ;
    Non : rapatrier une sauvegarde de la production vers le serveur de test (ceci peut être automatisé nuitamment par le biais de l'agent SQL).

    Citation Envoyé par Richard_35 Voir le message
    script 2 :
    copier les procédures stockées, vues et fonctions de l'environnement de développement vers l'environnement de production.
    Ce qu'un outil de modélisation comme Power AMC, vous facilite grandement en calculant des scripts différentiels, comme par exemple comment changer le type de données d'une colonne en préservant les informations de la table...
    A lire : http://sqlpro.developpez.com/cours/s...e=partie2#L7.6

    Citation Envoyé par Richard_35 Voir le message
    Si tu as une piste pour exploiter les tables "système" et écrire ces 2 scripts, je suis preneur.
    Il y a plus de 300 tables systèmes !!!!!!!!!!!!!!!!!!!!!!!!

    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/ * * * * *

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour SQLPro,

    Je reprends, un peu tard, le fil de ce fil... désolé.

    Il y a plus de 300 tables systèmes !!!!!!!!!!!!!!!!!!!!!!!!
    Je comprends et c'est l'objet de la difficulté : parmis tous les contributeurs, peut-être y-en-a-t-il un qui a déjà été confronté à cette recherche ?

    Le script 1 doit effectuer les opérations suivantes pour une base EXP :
    - liste de tous les objets "tables" de la base EXP (à partir d'une table système) ;
    - copie de tous les éléments de cette liste de la base EXP vers la base DEV.

    Le script 2 doit effectuer les opérations suivantes pour une base EXP :
    - liste de tous les objets "procédures stockées", "vues" et "fonctions" de la base DEV (à partir d'une table système) ;
    - copie de tous les éléments de cette liste de la base DEV vers la base EXP.

    Reste à traduire ces scripts en langage SQL.

    Sinon, en effectuant quelques recherches, je suis tombé sur ce freeware bien sympathique (mais limité) que je vous laisse découvrir :http://www.sqldbtools.com/

    Merci d'avance de votre aide,
    Richard.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Sur un projet, nous avons aussi utilisé open dbdiff pour scripter les modifications de tables, et un outil maison pour les procédures stockées, mais Open DBdiff s'en occupe aussi.
    http://opendbiff.codeplex.com/Wikipage
    Personnellement, je crée moi même les modifications de tables, et je liste les PS modifiées. J'ai un outil maison qui à partir de la liste crée le script de création des PS, mais sinon un simple sp_helptext peut suffire.

    A +
    Soazig

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour soazig et SQLpro,

    Désolé pour le retard.
    J'ai une bonne piste par open dbdiff (non encore en route).
    Je considère ce post comme résolu.

    Merci beaucoup,
    Richard.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un environnement pour développer en Python.
    Par arieugon dans le forum Général Python
    Réponses: 5
    Dernier message: 03/03/2007, 13h43
  2. Réponses: 11
    Dernier message: 03/11/2005, 17h59
  3. Choix d'environnement de développement
    Par life is magic dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 16/09/2005, 13h06
  4. Langage C / Linux / environnement de développement
    Par formatou dans le forum Choisir un environnement de développement
    Réponses: 20
    Dernier message: 09/10/2004, 15h44
  5. L'environnement de développement le plus utilisé
    Par TheDarkLewis dans le forum Windows
    Réponses: 5
    Dernier message: 16/09/2004, 20h08

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