Entity Framework 6 Code Erste Migrationen - mehrere Zweige für die Produktion

8

In meinem Projekt haben wir ein Zweigmodell, das einen separaten Entwicklungszweig hat und für jede Version einen eigenen Zweig hat. Es könnte so aussehen:

%Vor%

Also entwickeln wir auf Dev-Merge es zu Master und dann erstellen wir einen Release-Zweig (r1, r2, ...).

Wir möchten EF 6 (manuelle, nicht automatische) Migrationen verwenden, aber wir haben eine Frage, die wir nicht beantworten können.

Stellen Sie sich folgendes vor:

%Vor%

Jede Nummer ist eine Migration. Sie wurden der Quellcodeverwaltung in jedem Zweig hinzugefügt und wurden auf die Datenbanken von Produktionsinstanzen unseres Projekts angewendet (wir unterstützen mehrere Versionen nur für Fixes), so dass wir sie nicht downgraden können, sie können nur nach Up () gehen. Asterisk markiert den Zeitpunkt, den wir analysieren möchten. Wir möchten, dass Migrationen so funktionieren:

  • r1 Datenbank hat nur Migration (2) angewendet
  • r2 Datenbank hat (1), (2) und (3) angewandt
  • master-Datenbank hat (1), (2), (4) und (5) angewandt
  • dev-Datenbank hat (1), (2) und (4) angewendet

Außerdem:

  • wir können nicht ein wenig Daten in unserer Datenbank verlieren
  • es muss möglich sein, dass die Datenbank r1 ohne Probleme auf die Datenbank r2 (oder eine andere zukünftige Version) aktualisiert wird, so dass sie die gleiche Datenbankstruktur wie alle anderen Datenbanken (erstellt als r2 oder aktualisiert von früheren Versionen) aufweist zu seinem Code erstes Modell.

Kann das gemacht werden? Wenn ja, wie?

Wenn Sie weitere Informationen benötigen, fragen Sie bitte.

    
pinus.acer 10.07.2014, 20:45
quelle

1 Antwort

11

Ich könnte versuchen zu erklären, was Sie in jedem Fall tun können, aber es ist ziemlich komplex und ich könnte es nicht so gut erklären, wie es hier erklärt wird:

Erste Migrationen in Teamumgebungen codieren

Obwohl es komplex ist und Sie häufig auf dieses Dokument verweisen müssen, um die Zweige zusammenzuführen, werden Sie feststellen, dass es alle Ihre Fragen löst.

Disclaimer: Ich weiß, dass SO in sich geschlossen sein sollte, aber die Erklärung ist so komplex und lang, dass ich hier nicht einmal ein Abstract hinzufügen kann. Ich hoffe, dass die verlinkten MSDN-Dokumente nicht verschwinden.

    
JotaBe 11.07.2014, 08:32
quelle