kostenloses Dienstprogramm zum Skript DB-Objekten in MS SQL
-
08-07-2019 - |
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