2010-03-03 2 views
6

Ich entwickle eine datengesteuerte Website und ziemlich viel Programmierlogik befindet sich in Datenbank gespeicherten Prozeduren und Datenbankfunktionen. Ich habe festgestellt, dass ich die gespeicherten proc/functions ziemlich oft ändere, um Bugs zu beheben oder neue Funktionen hinzuzufügen. Die Daten (Tabellen) sind weitgehend unberührt geblieben.Wie trennen Sie Programmierlogik und Daten in MS SQL Server 2005?

Das Problem, das ich habe, verfolgt die Versionen von gespeicherten Proc/Funktionen. Derzeit inkrementiere ich die Version der gesamten Datenbank, wenn ich eine Reihe von Änderungen mache. Da die Daten riesig sind (10 GB), bekomme ich Probleme, die Entwicklungsversion auszuführen und die Versionen der Datenbanken parallel zu veröffentlichen.

Ich möchte alle gespeicherten Procs und Funktionen in einer Datenbank und halten Daten in einer Datenbank, so dass ich die Änderungen besser verwalten kann.

Ich bin sicher, dass andere ähnliche Vorschläge haben und Vorschläge dazu erhalten würden, wie man diese Situation am besten behandeln kann.

Antwort

1

Sie können nur die Schema-Dumps versionieren. In Kombination mit der Erweiterung der Quellcodeverwaltung (wie von Rawheiser vorgeschlagen) sehen Sie sich einfach an, welche Version Sie in der Datenbank haben, generieren ein Diff und wenden es an.

Es gibt auch einige ausgezeichnete Werkzeuge, um Datenbanken und ihre Schemas zu vergleichen, DDL-Skripte usw .: SQL Workbench, Power Architect, DDLUtils und Redgate SQL Compare, um nur einige zu nennen. SQL Compare funktioniert wahrscheinlich am besten mit SQL Server, obwohl alle anderen FOSS sind und einen höheren ROI bieten (in Bezug auf den Zeitaufwand für das Lernen und was Sie damit tun können), da sie plattform- und RDBMS-unabhängig sind.

Schließlich muss ich sagen ... Ich verstehe, dass die unmittelbaren Ergebnisse, die Sie mit Logik in der DB erhalten, verlockend sind, aber wenn Sie mehr als ein paar Prozeduren in der Datenbank gegangen sind, setzen Sie Machen Sie sich eine Menge Schmerzen, durchforsten Sie, was leicht zu Spaghetti-Code wird, und sperren Sie Ihre Anwendung bei einem einzigen Datenbankanbieter. Du hast vielleicht deine Gründe, aber ich war dort und mochte es nicht sehr. Logik kann sehr gut in einer anderen Ebene leben.

0

für die Quellcodeverwaltung haben Sie mehrere Möglichkeiten:

  1. ein Visual Studio Database project verwenden.

  2. Verwenden Sie SQL Server 2005 ist eine integrierte Unterstützung für source control

  3. Verwenden Sie einen dritten Teil Werkzeug wie SQL Compare

IMO Option 1. vorzuziehen ist. Sie können Augapfel, grep, Suche syscomments, etc. zu sehen, welche Version Sie haben auf Ihrer eingesetzte Datenbank

auf diese Weise:

+0

Können Sie erläutern, warum "Option 1. vorzuziehen ist"? –

2

würde ich auch mit der Quellcodeverwaltung Keyword-Erweiterung in Ihren gespeicherten Prozeduren ($ $ Version) empfehlen.

Verwandte Themen