10

Wir verwenden Code-Erstmigrationen, um unsere Datenbank und das Modell synchron zu halten. Im Moment haben wir die Versionsnummer als Name für die Migration, was eindeutig nicht funktioniert. Das Problem besteht darin, dass mehrere Migrationen mit demselben Namen von verschiedenen Entwicklern unabhängig voneinander für ihre lokale Datenbank erstellt wurden. Dies führte zu etwas merkwürdigem Verhalten, da die wegen des Zeitstempels unterschiedlich war, aber die Klassen sind teilweise mit dem gleichen Namen.Namenskonventionen für Code First-Migrationen

Wie sollen diese Migrationen aufgerufen werden? Die Beispiele sind immer lächerlich vereinfacht: z.B. Hinzufügen einer Eigenschaft Readers Ergebnis in Migration AddReaders.

Oder sollten die Migrationen auf diese kleinen Änderungen heruntergebrochen werden? Anstatt alle Änderungen zu einer großen Migration zusammenzufassen. Was ist, wenn Abhängigkeiten bestehen?

Antwort

0

Ich habe mit dem gleichen Problem gekämpft und verschiedene Lösungen ausprobiert. Bis jetzt haben wir uns vorgenommen, dass alle Entwickler die Migrationen vom Eincheckvorgang ausschließen und anschließend von einem designierten Entwickler die "Migration freigeben" ausgeführt wird, die die Änderungen von allen anderen enthält, die an dem Projekt arbeiten.

1

Ja, ich denke, der beste Weg ist es, Änderungen in kleinen Einheiten mit beschreibenden Namen zu brechen. Wie bei git, wo Sie sich häufig verpflichten sollten, sollten Sie bei Migrationen häufig migrieren. Nicht unbedingt Eigenschaft für Eigenschaft, sondern eine logische Arbeitseinheit.

Wenn Sie für ein Feature zwei Tabellen hinzufügen müssen, fügen Sie diese beiden Tabellen in einer Migration hinzu. Vermeiden Sie große Migrationen, bei denen Sie mehrere Tage lang arbeiten müssen, bevor Sie eine Migration erstellen. Zeit ist wichtig, um Konflikte zu vermeiden.

Wenn Abhängigkeiten vorhanden sind, sollte eine Migration zugehörige Änderungen enthalten. Wenn also ein anderer Entwickler die Migration anwendet, funktioniert die Anwendung weiterhin.

Wenn ein Entwickler eine Migration durchführt, sollte er sofort festgeschrieben und synchronisiert werden (mit anderen Entwicklern geteilt, falls Sie kein Git verwenden).

Wenn Sie mit kleinen Einheiten der Änderung arbeiten, wird das Zusammenführen und Lösen von Konflikten viel einfacher.