2009-10-27 7 views
5

Kann jemand etwas Licht auf, wie man Team Build 2010 Beta 2, um eine SQL-Datenbank-Projekt auf den SQL-Server schieben? In VSTS 2008 fügen Sie nur MSBuild-Befehle mit dem targets-Attribut hinzu, das in der TFSBuild.proj-Datei auf "deploy" gesetzt ist, aber ich habe ein wenig Mühe, dieses in das neue Workflow-basierte xaml-Ding zu übersetzen, das 2010 verwendet .How To: Bereitstellen von SQL-Datenbankprojekt mit Team System Build 2010 (Beta 2)

Was ich suche ist, wie man die tatsächliche Bereitstellung der Datenbanken selbst auslöst. Es erzeugt bereits die Deployment-Skripte. Hier

Antwort

6

Für alle noch nach der Antwort suchen, verwenden Sie einen Invoke Prozess, vsdbcmd.exe verwendet: http://msdn.microsoft.com/en-us/library/ff805001.aspx

+0

Vielen Dank für diese Antwort! Ich hatte diesen Artikel vermisst und dieses Problem nie wirklich gelöst. –

+0

Ist es nur ich oder ist das fast unmöglich, wenn ich einen nächtlichen Build mache? –

+0

Um ehrlich zu sein, habe ich die Verwendung von Team Build zur Bereitstellung der DBs aufgegeben. Ich habe stattdessen alles für unser nächtliches umgestellt, um eine SQL-Expressdatei zu benutzen, die angeschlossene Referenzdatenbank ist, die wir gerade als Teil unseres Entwicklungsprozesses beibehalten; Wenn wir DB-Projekte einchecken, stellen wir nur sicher, dass wir einen Schemavergleich verwenden, um die Änderungen in die Referenzdatenbank zu schreiben. Auf diese Weise können wir die DB-Projekte nutzen, uns selbst versichern, dass sie jede Nacht "bauen", aber nicht mit dem DB-Projekteinsatz herumärgern müssen. –

1

ein Beispiel:

http://www.nablasoft.com/alkampfer/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/

Es kann sein, dass Sie einfach fehlen die DeployToDatabase = true

+0

Ja, das ist genau, wie Sie es tun ... in VS 2008 mit Team Build 2008. Was ich brauche, ist Informationen in tfs 2010, die jetzt eine XAML-basierte Windows-Workflow-Datei verwendet, um den Build zu steuern verarbeiten. –

+0

Ich musste den XAML bearbeiten (in MSs schrecklich langsamer visueller XAML-Editor!), Um "/ t: Build, Deploy" zu den Msbuild-Argumenten hinzuzufügen. –

0

Das nächste, was ich gefunden habe, so weit ist this post von Jim Lamb (die Team Foundation PM bei Microsoft).

Hier spricht er vage über das Erstellen einer benutzerdefinierten proj-Datei und das Ändern der Standard-Build-Prozessvorlage zum Aufrufen der proj-Datei.

Er spricht auch über die Verwendung der Upgrade-Vorlage, die ich zuvor ignoriert hatte. Anscheinend kann die Upgrade-Vorlage verwendet werden, um eine Build-Definition für 2008 aufzurufen. Ich möchte den gesamten Build jedoch nicht auf Basis der Legacy-Proj-Datei aufrufen und definieren, aber es ist zumindest eine Option.

Kein Thema enthält ausreichende Informationen für mich, um die Änderungen tatsächlich vorzunehmen, aber es gibt mir einen vernünftigen Ausgangspunkt für zukünftige Experimente.

+0

Ich habe das gleiche Problem. Hast du jemals eine Antwort bekommen? – aquinas

+0

Nein. Ich habe die Antwort nie gefunden. Ich habe ein Upgrade verschoben, bis 2010 RTM geht. Hoffentlich enthält das Release entweder mehr Funktionen für Bereitstellungen oder zumindest einige weitere Dokumentationen und Anweisungen zur Anpassung des Workflows. –

1

Es gibt eine andere Lösung für dieses Problem, wenn Sie Datenbank-Upgrade nicht inkrementelle benötigen. Wenn also die Datenbank für jeden Build neu erstellt werden soll, würde das Folgende auch funktionieren.

ein deploy Ziel-Datenbank-Projektdatei

Konfigurieren der Bereitstellungseinstellungen für ‚My project settings‘ hinzufügen. Diese Einstellungen werden dann beim Erstellen der Lösung vom Build-Server verwendet. Bei der lokalen Erstellung werden die Einstellungen aus 'My isolated development environment' verwendet.

  1. in der Datenbank Projekteigenschaften

Deploy Aktion ‚Create a deployment script (.sql) and deploy the database‘ sein muss; Dies verhindert die Ausführung des Skripts, es wird nur erstellt.

  1. Datenbank-Projektdatei

die Datenbank-Projektdatei ändern (Rechtsklick-Datenbank-Projekt, wählen Sie Unload, erneut einen Rechtsklick, wählen Sie Bearbeiten [Projektname].dbproj) von

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

Um

<Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

Wenn der Build-Server die Lösung, die das Datenbankprojekt aufbaut, wird die Standardziele auch das Hinzufügen der Datenbank bereitstellen. Dieser Build verwendet die für "My project settings" ausgewählten Deploy-Einstellungen.

Pros

  • Einfache Einrichtung

Cons

  • Da das Standardziel zu Erstellen und Bereitstellen geändert wird, wenn ein Entwickler ein lokales der Lösung Rebuild tun, Es wird auch die Datenbank bereitstellen (nur Gebäude wird die Bereitstellung nicht auslösen)