TechEd ITForum: Data Dude
Jetzt sitze ich in einer Session über Visual Studio Team Edition for Database Professionals. Und da der Name so lang ist verwenden viele die Codenamen Data Dude oder DBPro.
Worum geht es? Erst mal darum, dass den Datenbankentwicklern im Team genauso professionelle Entwicklungs-, Test-, Change Management- und Deploymenttools zur Verfügung stehen wie den Architekten, Softwareentwicklern und Testern. Aber da das hier TechEd ITForum ist und nicht TechEd Developer ist das Thema dieser Session: Was hat der DBA davon?
Erst mal: Schemakontrolle. Es kann genau festgestellt werden, welche Version des Datenbankschemas sich auf welchem System befindet, und neue Versionen können kontrolliert verteilt und verglichen werden. Das klingt einfacher als es ist, insbesondere, wenn außer der Reihe Änderungen am Produktivsystem gemacht wurden. Wer tut sowas? Jemand, der ein Produktivsystem wieder zum Laufen bekommen muss. Änderungen, die so gemacht wurden finden normalerweise nicht ihren Weg zurück in Entwicklungs- und Staging-Umgebungen.
Data Dude verwendet dazu eine Sandbox. Man arbeitet also gegen ein dateisystembasiertes, im Quellcodekontrollsystem gespeichertes Datenbankschema, das mit den anderen Systemen synchronisiert werden kann. Das Projekt ist also sozusagen eine Offline-Datenbank. Auf dieses Projekt hat man sowohl eine Dateisicht mit vielen, vielen .sql-Dateien als auch eine Schemasicht, die aussieht wie Object Explorer im Management Studio.
Sinnvollerweise erzeugt man sich zuerst ein Projekt aus der Produktivdatenbank und packt das ins Quellcodecontrollsystem. Aus diesem Projekt kann man sich dann sehr einfach Entwicklungs- und/oder Testdatenbanken erzeugen.
Als nächstes kann man sich dann Testdaten erzeugen lassen. Dafür gibt es einen Datengenerierungsplan und darin eine Vielzahl von Datengeneratoren, von Integer bis zu regulären Ausdrücken oder auch Daten aus anderen Tabellen. Die Testdatengenerierung berücksichtigt dabei natürlich die referenzielle Integrität und andere Einschränkungen des Datenbankschemas.
Alle Schemaänderungen können dann im Unit Test Modul getestet werden. Die Testmodule können dabei sowohl in C# oder VB.NET als auch in T-SQL erstellt werden.
Data Dude unterstützt auch Refactoring. Damit können globale Änderungen an Objekten durchgeführt werden, in dieser Version leider nur Umbenennen von Objekten. Dabei wird das Objekt global und atomar umbenannt, einschließlich aller Referenzen auf das Objekt, einschließlich Testdatengenerierung, einschließlich Unit Test. Und das kann auch global rückgängig gemacht werden.
Die letzte Phase ist dann Build & Deploy. Dazu wird MSBuild verwendet. Dabei kann vollständig oder inkrementell deployt werden, und es können Pre- und Post-Deployment-Scripts angegeben werden (z.B. ein Backup der Zieldatenbank vor dem Deployment, oder das Einfügen von Basisdaten nach einem "New"-Deployment).
Als Datenbanken werden für die erste Version SQL Server 2000 und 2005 unterstützt. Derzeit ist die CTP7-Version verfügbar, RTM wird am 30.11.2006 sein.
Gruß,
Steffen