Frage

Also habe ich es geschafft, Code zuerst zum Laufen zu bringen und es funktioniert großartig.

Da ich die Anwendung noch entwickle, ist die Struktur der Datenbank noch nicht fertiggestellt und daher muss ich Migrationen implementieren.

Ich folgte dem Offizieller Blogeintrag und der Befehl Update-Database funktioniert.

Dies aktualisiert jedoch nur die SQLExpress-Version der Datenbank.Die Produktionsversion der Datenbank befindet sich in Azure und ich gebe die Verbindungszeichenfolge zur Laufzeit an, damit der Befehl Update-Database nicht funktioniert.

Meine letzte Frage ist also:wie wende ich automatische Migrationen auf die Produktionsdatenbank an, deren Verbindungszeichenfolge zur Laufzeit angegeben wird?

War es hilfreich?

Lösung

Geben Sie in der Paketmanager-Konsole Folgendes ein:

Get-Help Update-Database

Relevanter Teil:

    Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [<Com
monParameters>]

So können Sie eine tun Update-Database -ConnectionStringName "MyConnectionString" und es sollte wie ein Zauber wirken.

Sie haben auch eine MigrateDatabaseToLatestVersion Datenbankinitialisierer, wenn Sie ihn einstellen (über Database.SetInitializer()), wenn Sie Ihre App in der Produktion mit der richtigen Verbindungszeichenfolge bereitstellen, sollte sie beim ersten Datenbankzugriff Ihre Datenbank automatisch auf die neueste Version migrieren.

Ich schlage jedoch Vorsicht vor, immer Dinge sichern.

Update

@Alexy Strakh Die jüngsten Kommentare haben ein weiteres Argument hervorgebracht, das es wert ist, in die Antwort aufgenommen zu werden.

Ordnungsgemäßes Konfigurieren eines Bereitstellungssystems mithilfe von Code-First-Migrationen bei 2 Verbindungszeichenfolgen.

  1. Definieren Sie Ihre Verbindungszeichenfolgen im Web.konfiguration (prod und dev) mit Standardkennwörtern
  2. Lassen Sie das Konfigurationssystem Ihrer Anwendung über die Produkt- und Entwicklungsverbindungskonfigurationen Bescheid wissen und erstellen Sie optional Komponententests, um sicherzustellen, dass die richtige ausgewählt wird*
  3. Beschäftigen umwandlung von Konfigurationsdateien und lassen Sie es Ihr Web verwandeln.konfigurieren Sie in die mit Produktionswerten
  4. Stellen Sie Ihr Paket für die Produktion bereit (dies sollte der modernste Weg sein)

Sie sollten nicht von Ihrer Entwicklungsbox aus mit der Produktionsumgebung interagieren, aber wenn Sie wirklich müssen Sie das tun, dann machen Sie es zu einer vorübergehenden Lösung, die zurückgesetzt werden muss, sobald Sie fertig sind.

Eine andere Möglichkeit besteht darin, einfach das Web zu verwenden.Debug.konfiguration und Web.Veröffentlichen.konfigurieren Sie und haben Sie eine zentrale Vorlage für das Hauptweb.konfiguration (die einzige, die Sie in Ihrer Quellcodeverwaltung einchecken würden).

Stellen Sie einfach sicher, dass Sie niemals Passwörter für die Produktion oder die persönliche Entwicklung einchecken (wenn jeder).

* Sie können das DEBUG-Symbol verwenden, um zu überprüfen, wie die Anwendung ausgeführt wird.

Andere Tipps

Warum ist das EF-EF-Wert von Unternehmen?Migrations-Hinzufügen-Migrationsschritt Erfordert eine Datenbankverbindungszeichenfolge?

hat eine Lösung, die ich auf lange Sicht weniger arbeitsintensiv betrachte. Als ob Sie eine Verbindungszeichenfolge mit demselben Namen erstellen, mit demselben Namen

in Ihrem Kontext : Basis ("dbname")

Anschlusszeichenfolgenname und Erstkatalog übereinstimmen Sie dem von Ihnen angegebenen DBName und Sie müssen den Namen der Verbindungszeichenfolge nicht jedes Mal eingeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top