Frage

Ich versuche, Datenbank Quellcodeverwaltung zu implementieren.

das Werkzeug brauche ich soll eine separate Datei für jedes Objekt in der Datenbank erstellen, vorzugsweise in Ordnern, wie

Stored Procedures Funktionen Ansichten Tabellen

und es wäre toll, Lage zu sein, auch die Ergebnisse bestimmter Abfragen Dump, um den Überblick über die Datenänderungen in mehreren Konfigurationstabellen zu halten ...

Ich frage mich, ob es bereits ein Werkzeug, das diese Art von Sachen behandeln ...

-

nur ein paar Dinge zu klären ...

Ich verwende bereits SQL-Delta den Update-Skripte zu behandeln ...

Ich möchte Skripten des DB, um mit Subversion zu verwenden haben, ich kann so verfolgen, was wo mit jeder geänderten Objekte begehen, ohne die Update-Skripte studieren mit ...

Ich bin ein schönes vb Skript mit SQL Distributed Management Objects Entwicklung (SQL-DMO), werde ich Ihnen sagen, wie es geht ...

Was meine eigene Lösung zu, die gut ist, ist, dass ich auch die Ausgänge der Abfragen oder gespeicherte Prozedur Ausführung umfassen kann, die Änderungen in bestimmten Tabellen, Serverkonfiguration, das Wachstum der Datenbank zu verfolgen, na ja, was auch immer ich Dump kann eine Textdatei ...

Keine korrekte Lösung

Andere Tipps

Ich benutze ScriptDB für genau diesen Zweck. Das einzige, was musste ich war ändern Sie das Datum des Scripting in den generierten Dateien zu entfernen. Andernfalls werden die Dateien immer so geändert in Subversion markiert.

Hier ist der Ansatz ich verwende. svnclient ist das Werkzeug von Codeplex svncompletesync.codeplex.com , alle Dateien aus einem Ordner in Subversion einzuchecken. :

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

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

del "D:\Projekte\db_svn\myproject\Schema Objects\\*.sql" /q /s

xcopy "D:\temp\scriptdb\myserver\mydb\Schema Objects\\*.sql" "D:\Projekte\db_svn\myproject\Schema Objects" /e /y /i

svnclient "D:\Projekte\db_svn\myproject" -m "commit durch svncompletesync"

Wenn ich Dich richtig verstehe, müssen Sie zwei Dinge: Erstens müssen Sie die Skripte von Datenbank-Metadaten erzeugen (Tabellen, Views, Stored Procs, usw.), und sobald dies geschehen ist, müssen Sie irgendeine Art von einheitlicher Methodik verwenden für Skript Versionierung.

Wenn Sie bereits Ihre metadat und Daten in der Datenbank haben, sehe ich nicht, was Sie von verhindern würde mit SQL Management Studio (oder SQL Enterprise Manager) erzeugen Skripte von Datenbankobjekten: siehe Gewusst wie: ein Script (SQL Server Management Studio generieren ) . Dies sollte für SQL Server 2000, 2005 arbeiten, usw. Beachten Sie, dass Sie Skript Generation Einstellungen anpassen können, z.B. anstelle von einem großen Skript, können Sie einzelne Skripte für jedes Objekt verwenden. Sie müssen möglicherweise einige Skripte schreiben, füllen Tabellen mit Daten (Ich bin nicht sicher, ob der Assistent der Datenextraktion unterstützt).

Wenn Sie die Skripte bekommen, werden Sie wahrscheinlich haben, um sie manuell zu verteilen zwischen bestimmten Ordnern und wenn dies geschehen ist, sollten Sie bereit sein, sie in der Quellcodeverwaltung zu überprüfen. Von diesem Zeitpunkt an müssen Sie die Methodik für die nachfolgenden Datenbankinstallationen, Upgrades, um herauszufinden, und Reparaturen. Dies ist eine ziemlich komplexe Aufgabe, Abdeckung, die als eine einfache Antwort länger dauern würde. Wenn Sie in möglichen Optionen interessiert sind, überprüfen Sie mein Database Installer rel="nofollow überarbeitet Post, die eine Reihe erwähnt Ansätze und Adressierung mehrere Artikel Referenzen Datenbank Versionierung (sorry für Eigenwerbung, aber ich will nicht die gleichen Informationen wiederholen).

Die meisten Tools in diesem Bereich sind nicht kostenlos, aber es ist ein Open-Source-Projekt, ScriptDB , die kann zur Erzeugung von Skripten Ihre Anforderungen entsprechen.

Das wird das Problem nicht lösen, wie die Skripte in die Datenbank in der richtigen Reihenfolge anwenden -. Wenn Sie nicht zahlen wollen, können Sie Ihre eigenen Improvisations haben

Sie können versuchen, Wizardby , die nicht genau das, was Sie für Fragen nach wie vor, aber helfen Sie Datenbank Change-Management-Handling. Es kann Ihr Datenbankschema (na ja, eine Teilmenge davon) Reverse-Engineering und schreiben dann so genannte „Migration“ in einem speziellen Plattform-unabhängige DSL:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top