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

Datenbankentwickler führen einzelne Entwicklungsaufgaben aus, wobei jeder Entwickler in einer separaten isolierten Entwicklungsumgebung (oft als Sandkasten bezeichnet) arbeitet. Der Prozess für die Bereitstellung einer getesteten Version eines Datenbankprojekts in einer Staging- oder Produktionsumgebung ist ähnlich, es gibt jedoch einige grundlegende Unterschiede.

In der Regel ist der Zugriff auf Staging- und Produktionsserver eingeschränkt. Die Server können andere Datenbanken enthalten, die Sie beibehalten müssen. Oft ist die Zieldatenbank bereits vorhanden. Sie kann Daten enthalten, die ebenfalls beibehalten werden müssen. Bei der Bereitstellung in einer Datenbank müssen Sie mit geringerer Wahrscheinlichkeit Servereinstellungen ändern als bei der Bereitstellung in einer Entwicklungsumgebung. In einigen Fällen haben Sie möglicherweise keine Berechtigung zum Aktualisieren der Servereinstellungen, auch wenn Sie über die Berechtigung zum Bereitstellen der Datenbank verfügen.

Konfigurieren des Datenbankprojekts für die Bereitstellung in einer Staging- oder Produktionsumgebung

In den Bereitstellungseigenschaften für das Datenbankprojekt können Sie die Einstellungen konfigurieren, um Sie an die Staging- und Produktionsserverumgebung anzupassen. Diese Einstellungen stehen nicht im Zusammenhang mit den Einstellungen der anderen Entwickler für ihre isolierten Entwicklungsumgebungen. Dank dieser Trennung können Sie Projektkonfigurationen für die Staging- und Produktionsumgebung einrichten, die andere Entwickler nicht ändern können. Jede Konfiguration verfügt über eine Zieldatenbankverbindung zu einem Staging- oder Produktionsserver, eine eigenen SQLDEPLOYMENT-Datei und eine eigene SQLCMDVARS-Datei.

Sie können auch die Staging- und Produktionseinstellungen konfigurieren, um das Bereitstellungsskript vorzubereiten, und die tatsächliche Bereitstellung überspringen. Mit dieser Strategie können Sie das Bereitstellungsskript überprüfen, ggf. Änderungen daran vornehmen und das Skript dann manuell in der Zielumgebung bereitstellen.

Details zur Bereitstellungskonfiguration

Bevor Sie das Projekt in einer Staging- oder Produktionsumgebung bereitstellen, sollten Sie Folgendes bedenken:

  • Wahrscheinlich empfiehlt es sich, die Sortierreihenfolge der Zieldatenbank verwenden, da die Staging- oder Produktionsumgebung bereits eingerichtet ist.

  • Sie sollten die Datenbank nicht jedes Mal neu erstellen, da Sie dadurch Daten verlieren würden.

  • Sie sollten Datenbankeigenschaften bereitstellen, wenn die Bereitstellung in einer neuen Datenbank erfolgt. Wenn Sie Updates in einer vorhandenen Datenbank bereitstellen, möchten Sie die Datenbankeigenschaften wahrscheinlich nicht bereitstellen, da sie bereits ordnungsgemäß eingerichtet sein sollten.

  • Es empfiehlt sich meist, die Datenbank als Teil des Bereitstellungsprozesses zu sichern, wenn Sie die Objekte und Daten nicht in einem separaten Schritt außerhalb des Bereitstellungsprozesses gesichert haben.

  • Sie sollten die Bereitstellung blockieren, wenn Datenverlust auftreten könnte, da Sie eine Datenbank aktualisieren, die oft Produktionsdaten enthält.

  • Möglicherweise sollten Sie DROP-Anweisungen für Objekte generieren, die sich in der Zieldatenbank, nicht aber im Datenbankprojekt befinden. Das Datenbankprojekt sollte der richtigen Version der Staging- und Produktionsschemas entsprechen. Eine Ausnahme könnte sein, wenn Sie Daten manuell verschieben müssen, nachdem Sie Updates in der Datenbank bereitgestellt haben. In diesem Fall sollten Sie die Objekte nicht verwerfen, bis die Daten migriert wurden.

SQL-Befehlsvariablen

Wenn die Bereitstellung in einer Staging- oder Produktionsumgebung erfolgt, sollten die Variablen über Werte verfügen, die für diese Umgebung geeignet sind. Möglicherweise benötigen Sie etwa Werte für Service Broker oder Dienstzertifikate in den Staging- oder Produktionsumgebungen, die sich von den Werten in der Entwicklungsumgebung unterscheiden. Sie können das Ändern der Werte dieser Variablen beim Ändern der Bereitstellungsziele umgehen, indem Sie eine andere SQLCMDVARS-Datei für jede Zielumgebung 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

Ein Datenbankprojekt kann Definitionen für Datenbankobjekte, für Serverobjekte oder für beides enthalten. In den meisten Umgebungen können Entwickler Datenbankobjekte ändern, aber nur der Datenbankadministrator kann Serverobjekte ändern. Sie können diese Einschränkung erzwingen, indem Sie Serverobjekte in einem separaten Projekt (bekannt als Serverprojekt) ablegen. Sie können dann die Versionskontrolle einschränken, damit nur Administratoren das Serverprojekt ändern können. In einer Staging- oder Produktionsumgebung werden das Serverprojekt und seine Objekte meist getrennt von dem Projekt mit den Datenbankobjekten bereitgestellt.

Sie stellen ein Serverprojekt mit den gleichen Verfahren bereit, mit denen Sie ein Schemaprojekt bereitstellen.

Bereitstellen von Rollen

Die Rollen, die Sie in der Datenbank verwenden, müssen auf allen Servern bereitgestellt werden, auf denen Sie diese Datenbank bereitstellen. Wenn Sie eine Datenbank auf einem Staging- oder Produktionsserver bereitstellen, müssen Sie alle erforderlichen Benutzer definieren mit ihren entsprechenden Rollen zuordnen.

Bereitstellung über die Befehlszeile

Sie können ein Datenbankprojekt an einer Eingabeaufforderung auf einem Computer bereitstellen, auf dem Visual Studio Premium nicht installiert ist, wenn die folgenden erforderlichen Komponenten installiert sind:

  • Microsoft .NET Framework Version 3.5 Service Pack 1

  • SQL Server Management Objects (SMO)

    Diese Komponenten 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 Premium

    Sie können diesen in der Regel unter [Programme]\VSTSDB\Deploy finden.

  • 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.

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. Außerdem erhalten Sie Einblick in den Build- und Bereitstellungsprozess. Zusätzlich können Sie mehr über alle Eigenschaften und Einstellungen erfahren, mit denen Sie steuern können, wie das Projekt erstellt und bereitgestellt wird.

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 Datenbankprojekts für den Buildprozess: Sie können Einstellungen konfigurieren, die steuern, wie das Datenbankprojekt erstellt wird. Sie können beispielsweise den Ausgabepfad angeben.

Konfigurieren des Datenbankprojekts für die Bereitstellung:

  • Sie können die Bereitstellung für eine beliebige Buildkonfiguration konfigurieren, indem Sie die 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.

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

  • Sie können steuern, ob die Datenbankeigenschaften aktualisiert werden sollen, wenn Sie die Datenbank 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 an einer Eingabeaufforderung mit MSBuild erstellen, um die Bereitstellung vorzubereiten.

Bereitstellen des Datenbankprojekts: Sie können das Datenbankprojekt in Visual Studio mithilfe von MSBuild als Teil des Datenbank-Komponententestlaufs oder mit VSDBCMD an einer Eingabeaufforderung bereitstellen, um die Zieldatenbank oder den Zielserver zu aktualisieren.

Außerdem können Sie die Bereitstellung mit Team Foundation Build vornehmen, wenn Sie einen benutzerdefinierten Workflow definieren.

Beheben von Problemen: Sie erhalten weitere Informationen zur Behebung der am häufigsten auftretenden Probleme im Zusammenhang mit der Erstellung und Bereitstellung eines Datenbankprojekts.

Ähnliche Szenarien

  • Beginnen der Teamentwicklung von Datenbanken
    Beschreibt, wie Sie in einem Datenbankprojekt eine Offlinedarstellung eines Datenbankschemas erstellen und das Projekt zur Versionskontrolle hinzufügen.

  • Teamentwicklung von Datenbanken mit Verweisen auf andere Datenbanken
    Beschreibt, wie Sie eine Offlinedarstellung eines Datenbankschemas erstellen können, Verweise auf andere Datenbanken definieren, Variablen für Zielbereitstellungsumgebungen angeben und das Projekt zur Versionskontrolle hinzufügen.

  • Teamentwicklung von Datenbanken mit SQLCLR-Objektverweisen
    Beschreibt, wie Sie eine Offlinedarstellung eines Datenbankschemas erstellen, Verweise auf Assemblys definieren, die SQL-CLR-Objekte (Common Language Runtime) enthalten, Datenbankobjekte definieren, die auf diese Objekte verweisen, und das Projekt der Versionskontrolle hinzufügen.

  • Teamentwicklung von Datenbanken, die XML-Schemaauflistungen verwenden
    Beschreibt, wie Sie eine Offlinedarstellung eines Datenbankschemas erstellen, Verweise auf eine XML-Schemadefinitionsdatei (XSD) definieren, eine XML-Schemaauflistung definieren, die diese Datei verwendet, Spalten definieren, die die XML-Schemaauflistung verwenden, und das Projekt der Versionskontrolle hinzufügen.

  • Teamentwicklung von Datenbanken, die auf freigegebene Serverobjekte verweisen
    Beschreibt, wie Sie eine Offlinedarstellung eines Datenbankschemas erstellen, Verweise auf ein freigegebenes Serverprojekt definieren, Verweise auf Objekte hinzufügen, die im Serverprojekt definiert sind, und das Datenbankprojekt zur Versionskontrolle hinzufügen.

  • Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung
    Beschreibt, wie Sie die Datenbank für die isolierte Entwicklungsumgebung erstellen und bereitstellen. Sie können die Änderungen isoliert testen, bevor Sie sie in die Versionskontrolle einchecken, um sie für das Team freizugeben. Sie sollten die Änderungen isoliert testen, bevor Sie die Änderungen in einer Staging- oder Produktionsumgebung erstellen und bereitstellen.

Siehe auch

Konzepte

Schreiben und Ändern von Datenbankcode

Erstellen und Ändern von Datenbank- und Serverobjekten