Ich entwickle eine Website, die zuerst Entity Framework-Code mit Migrationen verwendet. Nach jeder größeren Veröffentlichung nehme ich eine Kopie der Produktionsdaten und richte sie in meiner Entwicklungsumgebung ein. Ich habe festgestellt, dass, um eine Produktionsdatenkopie mit Migrationen zu verwenden, die Tabelle __MigrationHistory
aus dem alten Entwicklungsdatenbankimage in die Kopie der Produktionsdatenbank kopiert werden muss.
Das funktioniert gut, abgesehen von einem lästigen Detail: Die Tabelle _MigrationHistory
wird als Benutzertabelle anstatt als Systemtabelle angezeigt. Dies ist kein ernsthaftes Problem, solange ich mich erinnere, es aus meinen Datenbank-Diffs herauszufiltern. Aber ich würde es vorziehen, wenn die neue Tabelle __MigrationHistory
eine Systemtabelle ist, genau wie in einer Datenbank, die durch EF-Migrationen erstellt wurde.
Gibt es eine Möglichkeit, eine SQL Server-Tabelle so zu erstellen oder zu kopieren, dass sie als Systemtabelle erscheint?
Nach meinem Verständnis ist dies keine empfohlene Praxis.
Als mögliche Lösung schlage ich vor, ein neues Schema wie ETL oder Mig zu deklarieren und diesem Schema Sicherheitsmaßnahmen zuzuweisen, wenn Sie über solche Dinge besorgt sind. Dies würde dazu dienen, die '_MigrationHistory'-Tabelle von den übrigen Benutzertabellen zu trennen.
Bearbeiten: Ich habe das gerade in einer anderen Frage gefunden, vielleicht hilfreich, wenn Sie darauf aus sind. StackOverflow
Tags und Links entity-framework code-first-migrations tsql