Was ist ein guter Weg, um DB-Änderungen von der Entwicklung über die Qualitätssicherung in Produktionsumgebungen zu migrieren? Derzeit sind wir:
- Schreiben Sie die Änderung per Skript in eine SQL-Datei und hängen Sie sie an ein TFS-Arbeitselement an.
- Die Arbeit wird von Fachleuten begutachtet
- Wenn die Arbeit zum Testen bereit ist, wird SQL auf QA ausgeführt.
- Die Arbeit ist QS-geprüft
- Wenn die Arbeit produktionsbereit ist, wird SQL auf den Produktionsdatenbanken ausgeführt.
Das Problem dabei ist, dass es sehr manuell ist. Der Entwickler muss daran denken, den SQL-Code beizufügen, oder der Peer-Reviewer muss ihn abfangen, wenn der Entwickler dies vergisst. Manchmal ist es der Tester oder QS-Bereitsteller, der das Problem entdeckt.
Ein sekundäres Problem ist, dass Sie manchmal Änderungen manuell koordinieren müssen, wenn zwei separate Aufgaben dasselbe Datenbankobjekt ändern. Dies mag einfach so sein, aber es scheint immer noch so, als ob es eine automatisierte Möglichkeit geben sollte, diese Probleme zu "markieren" oder so.
Unser Setup: Unser Development-Shop ist voll von Entwicklern mit viel DB-Erfahrung. Unsere Projekte sind sehr DB-orientiert. Wir sind hauptsächlich ein .NET und MS SQL Shop. Derzeit verwenden wir MS TFS Work Items, um unsere Arbeit zu verfolgen. Dies ist praktisch für Codeänderungen, da hiermit die Änderungssätze mit den Arbeitselementen verknüpft werden, sodass ich genau herausfinden kann, welche Änderungen ich bei der Migration zu QS- und Produktionsumgebungen berücksichtigen muss. Wir verwenden derzeit kein DB-Projekt, werden aber möglicherweise in Zukunft darauf umsteigen (vielleicht ist das ein Teil der Antwort).
Ich bin sehr daran gewöhnt, dass mein Quellcodeverwaltungssystem solche Dinge für mich erledigt, und möchte dasselbe für mein SQL haben.