2013-02-13 21 views
5

Meine aktuelle Entwicklungsumgebung für C# -Projekte ist Visual Studio mit einer SQL Server-Datenbank und mit VisualSVN, um eine Verbindung zu meinem SVN-Repository herzustellen. Um Revisionen meiner Stored Procedures, Views usw. zu verwalten, speichere ich das Skript ALTER in einem Ordner, der von meinem SVN-Client beobachtet wird, damit diese in das Repository aufgenommen werden.Gespeicherte Prozeduren an SVN-Repository übergeben

Ich habe einige ausgecheckt (jetzt älter) Beiträge wie dieser (How to keep Stored Procedures and other scripts in SVN/Other repository? und Is there a SVN plugin for SQL Server Management Studio 2005 or 2008?) und haben eine Empfehlung für diese Tools zu sehen: http://www.red-gate.com/products/sql-development/sql-source-control/ und http://www.zeusedit.com/agent/ssms/ms_ssms.html.

Da ich selten mit Projekten arbeite, die viel DB-Side-Programmierung tun, war dies nie ein Hauptproblem (ein Dutzend Skripte in einem Ordner mit einem Benennungsschema ist nicht viel manuell zu verwalten), aber ich habe gerade ein Projekt geerbt mit ein paar hundert Ansichten und mehr als 1000 Stored Procedures, die nie in der Versionskontrolle enthalten waren.

Meine Frage ist:

Welche Verfahren kann für die Verwaltung der Versionierung ihrer SQL Server-Code andere folgen - ist es eine akzeptierte, klug oder sonst offensichtlich Ansatz ich hier fehlt? Ich lehne mich derzeit für den Kauf eines der oben genannten Tools an - aber ich suche Ratschläge von der Community, bevor ich das tue.

Ich weiß, dass dies zu einer Tool-Empfehlung statt einer Code-Lösung führen kann, aber auf SO gepostet, da ich denke, dass dies die richtige Menge ist, um das zu fragen.

Antwort

1

Ich habe eine Datenbank mit mehr als 800 Db-Objekten darin gepflegt. Wir haben die Datenbankobjekte bei der Beschreibung immer nur in einen von svn überwachten Ordner geschrieben. Wir hatten einige Probleme mit dieser Methode, meist mit dem Vergessen, neue oder geänderte Objekte zu schreiben. Am Ende des Tages war es kein großes Problem für unser Projekt, aber Ihre können anders sein.

Wir haben uns ein paar Tools angeschaut, aber sie gehen immer davon aus, dass Sie bei Null anfangen, und wir haben fast 10 Jahre Geschichte, die wir gerne bewahren würden. Am Ende werden wir uns wieder in unserer textbasierten manuellen Lösung wiederfinden. Es ist billig und einfach.

Eine andere Option, die Sie möglicherweise untersuchen möchten, ist das Einrichten eines Visual Studio-Datenbankprojekts. Es scriptet alle Ihre Objekte und bietet auch einige Bereitstellungsoptionen. Meine Meinung war, dass es müde ist, ein bisschen zu eng für unseren Geschmack integriert zu sein - wir haben ein paar benannte Verweise auf verlinkte Datenbanken, die es einfach nicht aufgeben würde.

+0

Ich habe versucht, mit dem VS DB-Projekt zu spielen, bin aber auch auf das Problem eingegangen, das Sie beschreiben. Ich probierte auch die Demo von AgentSVN aus und bemühte mich darum, etwas so zu bekommen, wie ich es wollte (wahrscheinlich eine Funktion, um es zu zwingen, so zu arbeiten, wie ich es erwartete, im Gegensatz zu dem, was es beabsichtigt). Bleiben Sie bei dem Versuch, einen echten überwachten Ordner von Skripten und Laden/Bearbeiten von dort aus. – Matthew

+0

Ich sollte hinzufügen, dass es möglich sein sollte, Ihr vorhandenes Repository zu etwas wie redgate zu migrieren. Ich habe die Möglichkeit mit ihrem technischen Support vor ein paar Jahren diskutiert: 1. Sie haben ihr Werkzeug erstellen ein neues Repository aus Ihrer db 2. Re-Struktur Ihrer bestehenden Repo um das gleiche Aussehen wie ihre 3. Schalten Sie ihr Werkzeug um auf Ihren neuen Look zu zeigen –

2

Ich würde Ihnen empfehlen, mit etwas wie dem Redgate-Tool zu gehen und jede SQL-Datenbank so zu behandeln, wie Sie Ihren C# -Quellcode behandeln würden; Wenn Sie die ALTER-Anweisungen manuell nachverfolgen, stolpern Sie später oder später, wenn die Anzahl der Änderungen wächst ... kann nicht für das zeus-Bearbeitungswerkzeug sprechen, aber nachdem Sie redgate verwendet haben, funktioniert es "einfach" - und ein weiterer Vorteil der Verwendung eines Tool wie das ist, dass es Ihre Migrationsskripte verwalten kann, so dass Sie eine Reihe von Änderungen an Ihrer Entwicklungsversion vornehmen können, dann generieren Sie ein einzelnes Update-Skript, um Ihre Test-Datenbank usw. zu aktualisieren, einschließlich Datenänderungen, die die größte PITA manuell verwalten .

Die andere Sache zu berücksichtigen, auch wenn die Anzahl der Änderungen selten sind und Sie mit der manuellen Verfolgung der ALTER-Anweisungen, was passiert, wenn jemand anderes endet am selben Projekt arbeiten; jetzt haben Sie ein anderes Potential für falsch gehandhabte ÄnderungsSkripte ....

Wie auch immer, lassen Sie uns wissen Sie, wie Sie kommen und viel Glück damit!

+0

Die Skripte werden ordnungsgemäß im Ordner revisioniert und kontrolliert (d. H. Ich bearbeite sie wie Quelldateien und SVN-Revisionen), so dass die letzte Sorge kein Problem ist. Wenn ich etwas Zeit (und s/w Budget) habe, denke ich, dass ich das redgate-Tool wieder besuchen werde - gut, um von jemandem zu hören, der es tatsächlich benutzt hat. Danke für deine Antwort - +1! – Matthew

Verwandte Themen