Announcement

Collapse
No announcement yet.

Datenbank Update / Version

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank Update / Version

    Hallo,

    ich bräuchte bitte Unterstützung bei folgender Konstellation:

    Habe ein Programm im Einsatz - dahinter steht eine SQL DB, diese SQL DB erstelle ich anfänglich per Skript.
    Nun habe ich einige Erweiterungen hinzuprogrammiert, diese Erweiterungen benötigten aber eine Änderung in der DB - bei einigen kommen spalten hinzu und ein paar Tables werden hinzugefügt.
    Passiert durch Alter/Create.

    Derzeit arbeite ich aber schon an einer neuen Extension der DB, diese baut natürlich auf die "zweite" Version der DB auf.
    Wie kann ich nun gewährleisten das im Falle eines "Updates" schon die zweite Version vorhanden ist und ich nicht auf die erste Version ein Update mache mit ggf. entstehenden Problemen?

    Meine Idee wäre eine separate Tabelle mit der DB Version zu füllen und diese dann bei Programmstart abzufragen. Hier befürchte ich aber langfristig das im Code eine riesige IF Verzweigung erstellen muss, wovon ich lieber Abstand nehme.

    Daher - gibt es eine Möglichkeit ein Skript über die DB rollen zu lassen das beim Update alles noch nicht vorhanden hinzufügt? Würde das mit Alter Table ..... funktionieren? Gibt es schon Erfahrungen wo man ggf. aufpassen muss?

    Mit freundlichen Grüßen
    Sh0Xy

  • #2
    Hallo,

    ich verwende dazu die SQL Server Data Tools und hab in Visual Studio ein Projekt für die DB.
    Per "Deploy" wird dann die neue "Version" der DB erstellt -- das Tool erstellt dabei ein Script für die Aktualisierung das auf einem Schema-Vergleich mit der aktuellen DB basiert.

    Ein weiterer Vorteil ist, dass so die DB (bzw. deren Schema) versioniert (z.B. git) werden kann.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Wenn du die Skripte schon hast dann für die doch einfach aus. Du musst nur wissen welche Update Skripte du denn in welcher Reihenfolge ausführen musst. Heißt du solltest deine Datenbank Versionieren. Also irgendwo z.b. in der Datenbank nachhalten welche Version die denn hat. Dann kannst du entscheiden welche Skripte denn auszuführen sind. Aka Datenbank sagt ich bin Version 3 dein Update will auf Version 5 upgraden. Also müssen die Skripte für 3->4 und 4->5 ausgeführt werden und vielleicht irgendwelche Dinge "je nach Komplexität des System" die noch ausgeführt werden müssen die sich aber nicht als simples Datenbank Skript ausdrücken lassen.

      Comment

      Working...
      X