Question

J'essaie d'implémenter le contrôle de source de base de données.

l'outil dont j'ai besoin devrait créer un fichier séparé pour chaque objet de la base de données, de préférence rangé dans des dossiers, comme

procédures stockées les fonctions vues tables

et il serait bon de pouvoir également vider les résultats de certaines requêtes, afin de garder une trace des modifications de données dans plusieurs tables de configuration ...

Je me demande s’il existe déjà un outil capable de gérer ce genre de choses ...

-

juste pour effacer quelques choses ...

J'utilise déjà SQL delta pour gérer les scripts de mise à jour ...

J'aimerais disposer de scripts de la base de données pour pouvoir être utilisés avec subversion. Ainsi, je peux tracer quels objets ont été modifiés à chaque commit, sans avoir à étudier les scripts de mise à jour ...

Je développe un bon script vb avec des objets de gestion distribuée SQL (SQL-DMO), je vais vous expliquer comment ça se passe ...

L’avantage de disposer de ma propre solution, c’est que je peux également inclure les sorties de requêtes ou l’exécution de procédures stockées, pour suivre les modifications apportées à certaines tables, la configuration du serveur, la croissance de la base de données, ainsi que tout ce à quoi je peux accéder. un fichier texte ...

Pas de solution correcte

Autres conseils

J'utilise ScriptDB exactement à cette fin. La seule chose que je devais changer était de supprimer la date de scriptage dans les fichiers générés. Sinon, les fichiers sont toujours marqués comme modifiés dans Subversion.

Voici le lot que j'utilise. svnclient est l'outil de codeplex svncompletesync.codeplex.com , pour archiver tous les fichiers d'un dossier dans la sous-version. :

svn checkout " http: // svn / myproject " D: \ Projekte \ db_svn \ myproject

ScriptDB " D: \ temp \ scriptdb " myserver mydb mylogin mypwd

del "D: \ Projekte \ db_svn \ myproject \ Objets de schéma \\ *. sql " / q / s

xcopy " D: \ temp \ scriptdb \ myserver \ mydb \ Objets de schéma \\ *. sql " "D: \ Projekte \ db_svn \ myproject \ Objets de schéma" / e / y / i

svnclient " D: \ Projekte \ db_svn \ myproject " -m " commit au cours de svncompletesync "

Si je vous ai bien compris, vous avez besoin de deux choses: vous devez d’abord générer les scripts à partir de métadonnées de base de données (tables, vues, procédures stockées, etc.), puis utiliser une méthodologie cohérente. pour la gestion des versions de script.

Si vous avez déjà vos métadonnées et vos données dans la base de données, je ne vois pas ce qui vous empêcherait d'utiliser SQL Management Studio (ou SQL Enterprise Manager) pour générer des scripts à partir d'objets de base de données: voir Comment: générer un script (SQL Server Management Studio ) . Cela devrait fonctionner pour SQL Server 2000, 2005, etc. N'oubliez pas que vous pouvez personnaliser les paramètres de génération de script, par exemple. au lieu d'un énorme script, vous pouvez utiliser des scripts individuels pour chaque objet. Vous devrez peut-être écrire des scripts pour remplir des tables avec des données (je ne sais pas si l'assistant prend en charge l'extraction de données).

Une fois que vous avez obtenu les scripts, vous devrez probablement les distribuer manuellement entre des dossiers spécifiques. Lorsque cela sera fait, vous devriez être prêt à les vérifier dans le contrôle de source. À partir de ce moment, vous devez déterminer la méthodologie pour les installations, mises à niveau et réparations ultérieures de la base de données. Il s’agit d’une tâche assez complexe, qui prendra plus de temps qu’une simple réponse. Si vous êtes intéressé par les options possibles, consultez mon installateur de base de données révisé article qui mentionne un certain nombre d'approches et fait référence à plusieurs articles sur le gestion des versions de base de données (désolé pour l'auto-promotion, mais je ne souhaite pas répéter les mêmes informations).

La plupart des outils de ce champ ne sont pas gratuits, mais il existe un projet open source, ScriptDB , qui peut répondre à vos besoins en matière de génération de scripts.

Cela ne résoudra pas le problème d'application des scripts à la base de données dans le bon ordre - si vous ne voulez pas payer, vous devrez peut-être improviser vous-même.

Vous pouvez essayer Wizardby , qui n'est pas exactement ce que vous demandez. , mais peut toujours vous aider à gérer la gestion des modifications de base de données. Il peut procéder à l’ingénierie inverse de votre schéma de base de données (un sous-ensemble de celui-ci), puis écrire ce que l’on appelle "migrations". dans un DSL spécial indépendant de la plate-forme:

version 20090331140131:
    oxite_FileResource:
        FileResourceID type => PK, primary-key => true
        SiteID type => Guid, nullable => false
        FileResourceName type => LongName
        CreatorUserID references => oxite_User
        Data type => Binary
        ContentType type => AnsiString, length => 25, nullable => false
        Path type => String, length => 1000, nullable => false
        State type => Byte, nullable => false
        CreatedDate type => DateTime, nullable => false
        ModifiedDate type => DateTime, nullable => false 

    oxite_UserFileResourceRelationship:
        UserID references => oxite_User
        FileResourceID references => oxite_FileResource:
            add index unique => true

        index "" columns => [UserID, FileResourceID], unique => true, clustered => true
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top