Abbiamo uno schema di database con ~ 200 tabelle. L'istantanea del modello (Migration.Designer.cs) creata per ogni migrazione è di ~ 20K linee. Quindi, avere un numero piuttosto elevato di migrazioni rallenta la nostra build su CI (con circa 30 migrazioni che creano una soluzione impiega 6 minuti con le migrazioni o 4 minuti senza di esse).
Quindi, alla domanda: è sicuro eliminare le istantanee del modello per le vecchie migrazioni (che sappiamo che non potremo mai tornare indietro)? Le istantanee del modello sono utilizzate per qualsiasi altra cosa tranne Revert-Migration?
Le istantanee del modello sono utilizzate per qualsiasi altra cosa tranne Revert-Migration?
Sì. Ci sono alcuni casi limite in cui è necessario. Su SQL Server, questi casi sono:
Quindi la maggior parte delle volte è probabilmente sicuro da eliminare, ma per favore verifica che le tue migrazioni funzionino ancora dopo averlo fatto.
Ho lo stesso problema sul mio progetto attuale. Sopra 400 migraitons e 6m di righe di codice all'interno. Designer. Ecco come sono riuscito a risolvere questo problema:
MigrationProject.csproj
<PropertyGroup>
...
<DefaultItemExcludes Condition="'$(Configuration)' == 'Debug' ">$(DefaultItemExcludes);Migrations\**\*.Designer.cs</DefaultItemExcludes>
</PropertyGroup>
In questo modo non è necessario reimpostare la migrazione né eliminare i file .Designer.