migration synchronisiert Entwicklungs- und Produktionsdatenbanken

Ich verwende MVC 5 mit NET Framework 4.5.1. mit Code-first. Ich verwende Migrations auch mit dem SQL 2012-Server und (localdb) \ v11.0.

Ich bin gerade dabei, ein Projekt mit C # und MVC5 zu entwickeln. Während der Entwicklung habe ich viele neue Tabellen in meinem Entwicklungscomputer erstellt und das Feld "Name" geändert, für das das System meines Erachtens einen Index erstellt. Ich habe es mehrmals hinzugefügt und gelöscht.

Nachdem habe ich eine Menge neuer, nicht verwandter Tabellen hinzugefügt, aber aus irgendeinem Grund gab es bei meinen Migrationen aufgrund der Indizes für das Feld "Name" Fehler aufgrund von Fremdeinschränkungen. Diese Fehler vermehrten sich ständig, als ich sie korrigierte, und so entschied ich mich, wieder in den Ausgangszustand der Migration zurückzukehren und die aktuelle Position als neuen Ausgangspunkt zu verwenden. Ich hatte gehofft, dass die Produktionstabelle sich diesen neuen Ausgangspunkt in der Entwicklungsdatenbank ansieht und sich wieder mit dem Entwicklungsstatus synchronisiert. Ich dachte, ich hätte irgendwo gelesen, dass die Produktionsdatenbank sich der Entwicklungsdatenbank anpasst und sich selbst aktualisiert. Ich glaube, dass es eine Migrationsdatei in der Produktionsdatenbank gibt, die mit der Datei in der Entwicklungsdatenbank übereinstimmt - diese Datei war eindeutig nicht synchron. Ich habe überlegt, die darin enthaltenen Daten zu löschen, aber ich warte, bis ich einen Rat bekomme.

Anyway, ich habe den Namen des Migrationsverzeichnisses auf dem Dev-Computer geändert und es aus dem Projekt ausgeschlossen. Dann habe ich meine Tabellen (unter Verwendung eines neuen Datenbanknamens in meiner lokalen Datenbank) auf dem Entwicklungscomputer neu initialisiert und mit den Initialisierungsdaten neu geladen. Es hat alles geklappt.

Nun hatte ich ein neues Problem, meine Produktionsdatenbank und meine Entwicklungsdatenbank waren unterschiedlich, und meine Migration auf dem Entwicklungscomputer wurde so eingerichtet, dass neue Dateien erstellt wurden, während die im Produktionsstatus die ältere Migration erwartete. Jedes Mal, wenn ich versuchte, die Produktionsdatenbank mithilfe des Entwicklungscomputers zu aktualisieren, wurde die Fehlermeldung angezeigt, dass die Dateien vorhanden waren - was natürlich der Fall war.

Also, ich habe alle erstellten Dateien in meiner Migrationsdatei auskommentiert und es erneut versucht. Jetzt würde die Produktions-Datenbank starten, aber nicht ausgeführt werden, da der aktualisierte Code neue Felder enthielt, auf die er sich bezog und die nicht in der Produktions-Datenbank erstellt wurden. In meiner Produktionsdatenbank habe ich also angefangen, Fehler in allen fehlenden Feldern zu bekommen. Ich habe versucht, automatische Migrationen auch wahr zu machen, das hat nicht funktioniert. Ich vermute, die einzige Möglichkeit, dies zu beheben, besteht darin, die Felder manuell einzugeben und einzeln zu synchronisieren.

FRAGE 1: Gibt es eine automatische Möglichkeit, die Produktionsdatenbank und die Entwicklungsdatenbank mithilfe von Migrationen zu synchronisieren, sodass sie mit der Entwicklungsdatenbank identisch sind?

FRAGE 2: Unter Berücksichtigung des obigen Szenarios, was wäre ein besserer Weg gewesen, um die Migrationen auch bei ausgeschalteter Produktionsdatenbank zurückzusetzen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage