28

Gibt es in EF-Projekten Best Practices für die Einstellung AutomaticMigrationsEnabled?AutomaticMigrationsEnabled falsch oder wahr?

Weitere Erklärung:

In unserem Team nach einem Modell zu modifizieren wir in der Regel "Add-Migration" und "update-databse" Befehle in Package Manager-Konsole ausgeführt werden. Dieser Fehler wirft, wenn andere Entwickler das Projekt ausführen:

„Datenbank kann nicht gelöscht werden, da es in Verwendung ist“

Jedes Mal, das passiert den ersten Modifikator sollte Check In gesamte Projekt und andere haben zu GET geändert Objekte. In vielen Fällen möchten wir das bereits erstellte Modell und die Migration nicht einchecken!

Diese Situation ist ärgerlich, gibt es eine Lösung für diese Art von Problemen. danke im voraus.

Antwort

41

Automatische Migrationen machen die ganze Magie für Sie, aber sie erlauben keine strenge Versionierung (Sie haben keine spezielle feste Migration für jede Version). Ohne strenge Versionierung können Sie die Version Ihrer Datenbank nicht verfolgen und Sie können keine expliziten Upgrades durchführen (Sie können keine Downgrades durchführen).

Wenn Sie keine Versionierung verwenden möchten, bei der Sie wissen möchten, welche Version die Datenbank ist, und wenn Sie keine Herabstufung verwenden möchten, können Sie einfach die automatische Migration verwenden.

„Datenbank kann nicht gelöscht werden, da es in Verwendung ist“

Es sieht aus wie Sie auf der gemeinsam genutzten Datenbank = Showstopper arbeiten. Jeder Entwickler sollte seine eigene Datenbank verwenden.

aber nicht möchten, das Modell und die Migration, die bereits erstellt wurde, auschecken!

Das ist eine bewährte Methode, und wenn Sie mit Code-basierten Migrationen fortfahren möchten, müssen Sie dem folgen. Übrigens. Es gibt eine Praxis namens "Continuous Integration" - in der kontinuierlichen Integration sollten Sie erhalten sofort nachdem das Commit erfolgreich gebaut wurde und Tests besteht.

+0

danke. Ja, wir arbeiten an einer gemeinsamen DB. Kannst du uns erzählen, wie wir unsere eigenen Datenbanken nutzen können (Text, Artikel, Bücher, ...)?JEDER Rat wird sehr geschätzt!) –

+4

Welchen Rat suchst du? Installieren Sie den Datenbankserver einfach lokal oder verwenden Sie die DB pro Entwickler auf dem gemeinsam genutzten Server. Im ersten Fall müssen Sie nur die 'Datenquelle' in der Verbindungszeichenfolge zum lokalen Rechner ändern und jeder Entwickler hat eine eigene Datenbank mit dem gleichen Namen. Der spätere Fall erfordert eine Verbindungszeichenfolge pro Entwickler. Daher müssen Sie sicherstellen, dass einige Eincheckrichtlinien die Speicherung der entwicklerspezifischen Verbindungszeichenfolge in der Quellcodeverwaltung verhindern. –

+0

so brauchen wir keine gemeinsame Datenbank, OK! Ich setze die ** Datenquelle = (lokal) ** –

10

Von: http://msdn.microsoft.com/en-us/data/jj554735.aspx

Empfehlung für die Team-Umgebungen

können Sie intersperse automatische und Code-basierte Migrationen, aber das ist nicht in Teamentwicklung Szenarien empfohlen. Wenn Sie Teil eines Entwicklerteams sind, das die Quellcodeverwaltung verwendet, sollten Sie entweder rein automatische Migrationen oder rein codebasierte Migrationen verwenden. Angesichts der Einschränkungen der automatischen Migrationen unter empfehlen wir die Verwendung von code-basierten Migrationen in Teamumgebungen.

Verwandte Themen