Forums Neueste Beiträge
 

SQL Strukturupdate zur Laufzeit, Designfrage

09/03/2009 - 14:01 von Christoph Dreßler | Report spam
Hallo,

ich muss zukünftig eine größere App so fit machen, dass diese
selbststàndig ihre DB (MS SQL, ca 200 Tabellen) updaten kann.

Rahmenbedingungen:
1) Die struktur (felder, indexe) wird in einem Dictionary geliefert.
2) Ein extra Tool von Drittanbietern soll nicht laufen, zumindest
nicht vom Nutzer bedient werden müssen.
3) Stored Proc muss nicht unterstützt werden.
4) Zugriffsschicht ich das EF vom VS2008.
5) Die DB kann auch Updates ausgelassen haben. Mitgelieferte Scripte
sind also zu unflexibel.

Ich könnte zurückgreifen auf ein handgeschnitztes Programm, was aber
über ODBC làuft und damit manche Typen wie decimal(2) nicht richtig
übermittelt (decimal(4)). Das Programm liegt auch nicht in C# vor.

Frage:
Wie sollte ich das Thema angehen?
Etwa wieder von Hand einen StrukturSync bauen?
Oder gibt es da fertige Assemblys oder Projekte?


Vielen Dank für Tipps!
-christoph
 

Lesen sie die antworten

#1 Peter Fleischer
10/03/2009 - 06:05 | Warnen spam
"Christoph Dreßler" schrieb im Newsbeitrag
news:
Hallo,

ich muss zukünftig eine größere App so fit machen, dass diese
selbststàndig ihre DB (MS SQL, ca 200 Tabellen) updaten kann.

Rahmenbedingungen:
1) Die struktur (felder, indexe) wird in einem Dictionary geliefert.
2) Ein extra Tool von Drittanbietern soll nicht laufen, zumindest
nicht vom Nutzer bedient werden müssen.
3) Stored Proc muss nicht unterstützt werden.
4) Zugriffsschicht ich das EF vom VS2008.
5) Die DB kann auch Updates ausgelassen haben. Mitgelieferte Scripte
sind also zu unflexibel.



Hi Christoph,
genau 5) empfinde ich als die fexibelste Lösung. Ich habe sie schon mehrfach
in Lösungen angewandt.

Für jeden Versionsschritt wird eine Konvertierung durchgeführt. Jede
Konvertierungsroutine prüft zuerst, ob die alte Version vorliegt. Wenn
nicht, dann wird die nàchste Versionroutine aufgerufen. Damit wird
sichergestellt, dass auch bei Auslassen mehrerer Versionen auf die Version
aktualisiert wird, die die die Programmversion benötigt.

Ich könnte zurückgreifen auf ein handgeschnitztes Programm, was aber
über ODBC làuft und damit manche Typen wie decimal(2) nicht richtig
übermittelt (decimal(4)). Das Programm liegt auch nicht in C# vor.

Frage:
Wie sollte ich das Thema angehen?



Ich würde es machen, wie oben beschrieben.

Etwa wieder von Hand einen StrukturSync bauen?
Oder gibt es da fertige Assemblys oder Projekte?



Da bei einer Überführung der der Version der Datenbankstruktur eine Vielzahl
von Konvertierungen erforderlich werden können, wird es da keine alle
Möglichkeiten umfassende fertige Lösung geben.

Viele Grüsse
Peter

Ähnliche fragen