Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung

In einer isolierten Entwicklungsumgebung (oft als Sandkasten bezeichnet) können Sie und Ihre Teamkollegen Datenbankcode aktualisieren, erstellen und bereitstellen, ohne Änderungen hinzuzufügen, die Konflikte auslösen. Nachdem Sie Testdaten generiert und Datenbankkomponententests ausgeführt haben, können Sie Ihre Version des Codes auf einem Staging- oder Testserver bereitstellen, wo Ihre Version mit dem Code von anderen Entwicklern zusammengeführt wird. Bevor Sie ein Datenbankprojekt bereitstellen, konfigurieren Sie die Eigenschaften auf Grundlage der Entscheidung, ob Sie es in einer isolierten Entwicklungsumgebung anstelle auf einem Staging- oder Produktionsserver bereitstellen möchten.

Konfigurieren des Datenbankprojekts zur lokalen Bereitstellung

Wenn Sie die Bereitstellungseigenschaften konfigurieren, können Sie eine Ziel-Datenbankverbindung, eine DEPLOYMENTCONFIG-Datei und eine SQLCMDVARS-Datei identifizieren, die für die isolierte Entwicklungsumgebung spezifisch sind. In den Bereitstellungseigenschaften für das Datenbankprojekt können Sie die Einstellungen für die isolierte Entwicklungsumgebung so konfigurieren, dass sie sich von den Bereitstellungseinstellungen unterscheiden, die im Datenbankprojekt gespeichert sind. Daher können Sie eine Ziel-Datenbankverbindung für die isolierte Entwicklungsdatenbank, eine andere DEPLOYMENTCONFIG-Datei und eine andere SQLCCMDVARS-Datei bereitstellen.

Details zur Bereitstellungskonfiguration

Bevor Sie das Projekt in einer isolierten Entwicklungsumgebung bereitstellen, sollten Sie sich mit den folgenden Problemen befassen:

  • Wahrscheinlich empfiehlt es sich, die Sortierreihenfolge der Zieldatenbank verwenden, da die Entwicklungsumgebung in den meisten Fällen mit der Zielstaging- oder -produktionsumgebung übereinstimmt.

  • Möglicherweise möchten Sie die Datenbank jedes Mal neu erstellen, da Sie keine Produktionsdaten haben, die Sie beibehalten müssen.

  • Sie müssen Datenbankeigenschaften bereitstellen, da die Entwicklungsumgebung so eingerichtet werden muss, dass sie mit der Zielstaging- oder -produktionsumgebung übereinstimmt.

  • Sie müssen die Datenbank nicht sichern, da hierdurch der Mehraufwand für die Bereitstellung vergrößert wird und es keinerlei Vorteile mit sich bringt, die Datenbank bei jeder Bereitstellung neu zu erstellen.

  • Möglicherweise möchten Sie die Bereitstellung nicht blockieren, wenn Datenverlust auftreten kann, da Sie Testdaten generieren und nicht mit Produktionsdaten arbeiten. Wenn Sie davon ausgehen, dass die getätigten Änderungen keinen Datenverlust zur Folge haben, sollten Sie die Bereitstellung blockieren, um dieses erwartete Verhalten zu testen.

  • Sie sollten keine DROP-Anweisungen für Objekte generieren, die sich in der Zieldatenbank, nicht aber im Datenbankprojekt befinden. Möglicherweise verfügen Sie über vorübergehend ausgeschlossene Objekte aus dem Datenbankprojekt, die unvollständig sind, oder über Prototypen von Objekten in der Zieldatenbank, die Sie beibehalten möchten.

SQL-Befehlsvariablen

Wenn die Bereitstellung in einer isolierten Entwicklungsumgebung erfolgt, sollten die Variablen über Werte verfügen, die für diese Umgebung geeignet sind. Möglicherweise benötigen Sie etwa Werte für die Service Broker oder Dienstzertifikate in der Entwicklungsumgebung, die sich von den Werten in der Staging- oder Produktionsumgebung unterscheiden. Sie können das Ändern der Werte dieser Variablen beim Ändern der Bereitstellungsziele umgehen, indem Sie eine andere SQLCMDVARS-Datei für die isolierte Entwicklungsumgebung angeben. Diese Übung schließt auch die Anforderung aus, die SQLCMDVARS-Datei im Hinblick auf MSBuild-Variablen zu definieren, um konfigurationsspezifische Werte zu erhalten. Sie können für jede Konfiguration, die Sie bereitstellen möchten, eine andere SQLCMDVARS-Datei verwenden.

Bereitstellen von Serverprojekten

Wenn Sie ein Datenbankprojekt bereitstellen, stellen Sie auch die Objekte und Einstellungen für die Datenbank bereit. Wenn Sie ein Serverprojekt bereitstellen, stellen Sie auch die Objekte bereit, die in der Masterdatenbank definiert werden. Die Servereinstellungen werden jedoch nicht geändert. Die Servereinstellungen können ignoriert werden, oder Sie können überprüfen, ob die Werte einiger oder aller Einstellungen auf dem Zielserver mit den Werten übereinstimmen, die Sie im Serverprojekt angeben.

Abgesehen vom Unterschied beim Umgang mit den Einstellungen stellen Sie Serverprojekt mit der gleichen Vorgehensweise bereit, mit der Sie ein Datenbankprojekt bereitstellen.

Bereitstellen von Rollen

Sie müssen die in der Datenbank verwendeten Rollen auf allen Servern bereitstellen, auf denen Sie diese Datenbank bereitstellen. In der Entwicklungsumgebung können Sie jedoch die Anzahl der Benutzer einschränken, die Sie jeder Rolle zuordnen müssen. In der Regel soll für den Test jeder mindestens ein Benutzer zugeordnet werden, aber Sie müssen die Bereitstellung nicht für eine vollständige Benutzergruppe in der isolierten Entwicklungsumgebung zur Verfügung stellen.

Bereitstellung über die Befehlszeile

Sie können ein Datenbankprojekt über eine Eingabeaufforderung auf einem Computer bereitstellen, auf dem Visual Studio nicht installiert ist, wenn Sie die folgenden erforderlichen Komponenten installieren:

  • Microsoft .NET Framework, Version 4

  • SQL Server Management Objects (SMO)

    Diese Objekte sollten auf jedem Computer installiert sein, auf dem SQL Server installiert ist.

Zusätzlich zu diesen erforderlichen Komponenten müssen Sie auch die folgenden Dateien auf den Computer übertragen, etwa, indem Sie sie auf ein USB-Laufwerk (universeller serieller Bus) kopieren:

  • Die Buildausgabe des Datenbankprojekts (Debug- oder Verkaufsversion)

  • Der Inhalt des Bereitstellungsordners für Visual Studio

    Dieser Ordner befindet sich normalerweise unter [Programme]\VSTSDB\Deploy.

  • Die Assemblys für SQL Server Compact Edition

Nachdem Sie die erforderlichen Komponenten installiert und die Dateien übertragen haben, können Sie das Datenbankprojekt (in Form einer DBSCHEMA-Datei) in einer Zieldatenbank bereitstellen.

Verweisdaten

Sie können dem Skript nach der Bereitstellung im Datenbankprojekt Anweisungen hinzufügen, um eine oder mehrere Tabellen mit Verweisdaten aufzufüllen. Weitere Informationen finden Sie unter Hinzufügen von Verweisdaten zu Tabellen beim Bereitstellen der Datenbank.

Sie können die bereitgestellte Datenbank auch mit einer Datenbank vergleichen, die Verweisdaten enthält, wenn Sie eine oder mehrere Tabellen synchronisieren möchten. Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen mit Daten aus einer Referenzdatenbank.

Allgemeine Aufgaben

In der folgenden Tabelle finden Sie die Beschreibungen häufiger Aufgaben, die dieses Szenario unterstützen, und Links zu weiteren Informationen zur erfolgreichen Ausführung dieser Aufgaben.

Aufgabe

Hilfreiche Themen

Erste Schritte mit dem Build und der Bereitstellung: Bevor Sie das erste Datenbankprojekt konfigurieren, erstellen und bereitstellen, sollten Sie verstehen, wie Datenbankprojekte in einer Teamumgebung verwendet werden. Sie können auch Ihre Kenntnisse über den Erstellungs- und Bereitstellungsprozess erweitern und erhalten weitere Informationen zu allen Eigenschaften und Einstellungen, mit denen die Erstellung und Bereitstellung des Projekts gesteuert wird.

Lernen durch Praxis: Indem Sie die einführenden exemplarischen Vorgehensweisen abschließen, können Sie schnell mehr über den gesamten Prozess vom Erstellen einer isolierten Entwicklungsumgebung bis hin zum Festlegen einer Baseline und dem Durchführen einer iterativen Entwicklung erfahren.

Nur abgeschlossene Objekte bereitstellen: Sie können Dateien mit Definitionen für Datenbankobjekte, die Sie noch nicht bereitstellen oder testen möchten, ausschließen.

Konfigurieren des Projekts für die Erstellung: Sie können Einstellungen konfigurieren, mit denen Sie die Erstellung des Datenbankprojekts steuern können. Sie können z. B. angeben, dass Warnungen als Fehler behandelt werden sollen.

Konfigurieren des Projekts für die Bereitstellung:

  • Sie können die Bereitstellung für eine beliebige Buildkonfiguration konfigurieren, indem Sie eine Konfiguration einer Zieldatenbank, einer Datei, die Bereitstellungsdetails enthält, und einer Datei, die Variablen enthält, die sich auf die Bereitstellung auswirken, zuweisen.

  • Sie können die Details der Bereitstellung steuern, indem Sie die Datei ändern, die Bereitstellungsdetails enthält (.deploymentconfig).

  • Sie können Variablen so anpassen, dass in jeder Bereitstellung andere Service Broker oder Dienstzertifikate verwendet werden.

  • Sie können steuern, ob die Datenbank- und Servereigenschaften aktualisiert werden sollen, wenn Sie das Projekt bereitstellen, und welche Werte diese Eigenschaften aufweisen sollen.

Auffüllen von Verweis- oder Nachschlagetabellen: Sie können Tabellen Verweisdaten hinzufügen, wenn Sie das Datenbankprojekt bereitstellen. Sie können dies beispielsweise für Tabellen durchführen, in denen die Daten sich oft ändern, z. B. Absenderinformationen.

Erstellen des Datenbankprojekts: Sie können das Datenbankprojekt in Visual Studio oder über eine Eingabeaufforderung mit MSBuild erstellen. Sie können die maximale Anzahl von Fehlern oder Warnungen konfigurieren und Warnungen unterdrücken, wenn diese ignoriert werden sollen. Sie können Aktionen als Teil des Builds ausführen, bevor oder nachdem das Datenbankprojekt erstellt wurde.

Bereitstellen des Datenbankprojekts: Sie können das Datenbankprojekt in Visual Studio mithilfe von MSBuild oder mit dem VSDBCMD-Befehlszeilentool bereitstellen, um die Zieldatenbank oder den Zielserver zu aktualisieren. Bevor Sie Änderungen am Datenbankprojekt einchecken, sollten Sie testen, ob ein vollständiger Teambuild und die Bereitstellung erfolgreich sind.

Behebung von Problemen: Hier erfahren Sie mehr zum Beheben der gängigsten Build- und Bereitstellungsprobleme, z. B. Probleme beim Umbenennen der SQL CLR (Common Language Runtime)-Projekte und -Assemblys.

Nächste Schritte

Bevor Sie die Änderungen einchecken, sollten Sie das Ausführen von Datenbankkomponententests in Betracht ziehen, um zu überprüfen, ob die Datenbank wie beabsichtigt reagiert. Sie können zusätzliche Tests schreiben, um beliebigen Code zu überprüfen, den Sie geschrieben haben. Optional können Sie das Projekt bereitstellen und Testdaten generieren, wenn Sie die Tests ausführen. Weitere Informationen finden Sie unter Überprüfen von Datenbankcode mithilfe von Komponententests.

Ähnliche Szenarien

Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung

Beginnen der Teamentwicklung von Datenbanken

Teamentwicklung von Datenbanken mit Verweisen auf andere Datenbanken

Teamentwicklung von Datenbanken, die auf freigegebene Serverobjekte verweisen

Teamentwicklung von Datenbanken mit SQLCLR-Objektverweisen

Siehe auch

Konzepte

Erstellen und Ändern von Datenbank- und Serverobjekten

Beginnen der Datenbankentwicklung im Team