Datenbank Change Management und Build-Prozess unter Verwendung von TFS [geschlossen]

StackOverflow https://stackoverflow.com/questions/1324310

  •  19-09-2019
  •  | 
  •  

Frage

Wer mit Team Foundation Server für ihre Datenbanken verwalten? Wir sind derzeit Subversion. Team beschwert, dass es schwer ist, einen Build-Prozess in TFS zu erstellen und shying davon entfernt.

Jede gute Hinweise, Artikel, Erfahrungen?

War es hilfreich?

Lösung

DB Change Management hat nicht viel mit Ihrer Wahl von Versionskontrollsystemen zu tun, solange Sie haben ein in dem ersten Platz. Natürlich, wenn Sie Change-Management-Tools von MS verwenden, können Sie ganz sicher sein, dass sie gegen TFS getestet haben und der Rest des Stapels MS Entwickler ganz gut. Das ist wahr, ob Sie DBPro oder die weit älter / crappier Formen der Integration in dem klassischen VS „Datenbank-Projekt“ oder in SQL Management Studio unten Projekt / Lösung Bindungen beraubt gesehen verwenden. Aber es gibt keinen Grund, warum Sie nicht DBPro mit Subversion oder Red Gate mit TFS für diese Angelegenheit verwenden können.

Das Gleiche gilt für Build-Generation. CC.NET vs Team Build, NAnt vs MSBuild, etc ... die offiziellen MS-Tools sind in der Regel in etwa auf dem Niveau des Wettbewerbs. Sie haben nicht beschrieben Ihr DB-Bereitstellungsprozess in viel Detail, aber ich kann verstehen nicht, dass es wesentlich schwieriger zu Skript in MSBuild sein als das, was Sie jetzt verwenden, wenn über. Auch ist es nicht schwer, verschiedene Werkzeugsätze an verschiedenen Stellen in dem Stapel zu wählen: Sie können CC.NET Laufwerk MSBuild-basierte, die Red Gate baut Befehlszeile deploy verwenden, oder jede andere Kombination. Ich bin zufällig auf die enge Integration durch Festhalten an der MS Welt die Macken in einem Werkzeug weit angeboten denken, überwiegt, aber die Wahl ist da.

Lassen Sie mich auf den Punkt: es klingt wie Ihr Hauptproblem ist nicht technischer, sondern DBAs bekommen, um tatsächlich die Versionskontrolle in erster Linie übernehmen. Wenn Ihre „dev“ und „prod“ Umgebungen ihre eigenen Lebewesen sind, eher als allgemeine Maschinen definiert ausschließlich durch das Ergebnis eines wiederholbaren Build-Prozesses, dann bist du nicht wirklich Versionskontrolle in meinem Buch mit . Stellen Sie sich vor, wenn ein Client-Entwickler gelegentlich von Hand gezwickt die DLLs auf verschiedenen Maschinen rund um das Unternehmen, dann beschwert, dass sie zu schwer zu synchronisieren waren; Sie würden denken, dass er verrückt war.

Darüber hinaus ist die wichtigste Investition ist an einen Ort bekommen, wo nichts jemals direkt mit einem DB getan wird (mehr als Sie schnüffeln würden in% Programfiles%). Wenn es nicht im Quell-Repository ist, existiert es nicht.

Ich glaube nicht, wie man dort so wichtig ist. Sie könnten alle schreiben Sie Ihre SCHAFFT und Abspaltungen in Notepad, überprüfen Sie sie in der Befehlszeile, und haben Sie Ihre „Build-Prozess“ werden, um eine 2-zeilige Shell-Skript, dass sie in eine bekannte Datei verknüpft, wo das implementierende Skript zu sehen weiß . Oder Sie könnten ein schickes Tool wie DBPro benutzen, um Ihre Produktivität mit Intellisense / Unit-Test / Offline-Modellierung / etc. Es gibt gute Gründe, um den Kopf in der zweiten Richtung zu verstärken (vor allem, wenn Sie glauben,

Andere Tipps

Wir sind mit Visual Studio 2008 Team Suite zusammen mit TFS. Ich war in der Lage zu unseren Datenbanken in TFS mit relativer Leichtigkeit zu importieren. Aber ich habe festgestellt, dass die meisten der Mannschaft (einschließlich der DBAs) vergisst zu aktualisieren TFS, wenn sie ein Objekt in SQL ändern.

Jede Art von Build-Prozess wird auf DB Pro verlassen Unterschied Skripte zwischen Ihrer dev Umwelt und der Zielumgebung zu erzeugen. Ich habe festgestellt, dass dies problematisch, da unsere Entwickler-Umgebung kein sauberes Spiel zu unserer Produktionsumgebung ist. Berechtigungen sind sicherlich anders und wir haben eine Reihe von anderen Fällen, in denen Änderungen in dev / QA angewandt wurden, aber nie zu prod ausgezogen (aber wurden auch umgekehrt nie). Der Versuch, die Änderungen von Menge anderer Veränderungen in der DB zu isolieren Pro ist eine Herausforderung, weil es die Benutzeroberfläche Sie Objekte aus dem letzten Skript ausschließen macht (also wenn Sie zwei Objekte ändern und 1000 andere sind verschieden, Sie haben die andere 1000 Objekte deaktivieren). Darüber hinaus Konfiguration des Schemavergleich wird oft in tools-> Optionen getan, während andere Werkzeuge wie Red Gate ermöglicht es Ihnen, den Vergleich auf dem gleichen Bildschirm zu konfigurieren, dass Sie es starten.

ich denke, das Werkzeug Potenzial hat, aber wir müssen auf jeden Fall unsere bestehenden Verfahren und Systeme zur Arbeit mit TFS anzupassen. Darüber hinaus hat die Versionierung auf Ihren Datenbank-Objekten ist von unschätzbarem Wert, auch wenn es bisher nicht zu 100% oben ist.

Wir verwenden TFS mit der Datenbank-Ausgabe.

Die Erstellung der Datenbank Skript hat Post-Skripte Dev Daten in die DB zu laden.

Wir machen regelmäßig entfaltet DEV-Umgebung. Alle Entwickler haben SQL lokal installiert und sie tun, um ihre eigenen Get Latest und Bereitstellen.

In der Einheit Testumgebung, die Logins, Datenbanken (OLTP und OLAP), Replikation, ETL-Pakete, SQL Jobs, etc. sind alle im Einsatz, um ihre einzelnen Standorte und alles ausgesät.

Entwickler machen keine Änderungen außerhalb und nicht, sie in, weil dann die Bereitstellung Unit Test nicht funktioniert.

Es gibt viel mehr Meinung zu diesem Thema in dieser Frage Stack-Überlauf: Was sind die wirklichen Vorteile von Visual Studio Team System Database Edition (DDR)? (Ich weiß nicht, warum, aber meine Suche brachte mich auf diese Frage statt, und ich habe eine Menge Ärger Befund Meinungen dazu hatte. Hoffentlich ist dieser Link hilft anderen, die gleiche Suche.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top