MIGRAZIONE DATABASE EF
Ogni Database già istanziato con entity framework avrà una tabella chiamata "__efmigrationhistory" dove sono riportati tutti i cambiamenti al modello EF che sono stati applicati anche al Db, in questo caso il passaggio ad una nuova versione sarà immediato e richiederà pochi passaggi.
Esiste la possibilità che alcuni DataBase non abbiano ancora la "firma" di Entity framework, per casi di questo genere sarà necessario utilizzare ancora DataBaseHelper per poter effettuare l'allineamento.
Importante ricordare che anche se un Database possiede la tabella "__efmigrationhistory" ma questa risulta vuota non sarà possibile effettuare la migrazione direttamente e sarà necessario utilizzare anche in questo caso la procedura con DataBaseHelper.
Migrazione di database con firma
- Accertarsi di puntare al Db desiderato, modificando opportunamente il file "manager_setting.json" locato in
C:\PROROB\bin\ProNet-IoT\_config. - Compilare "ProNet", se si è partiti da una configurazione di debug troveremo l'eseguibile in
.\industry-pronet_iot\ProNet\bin\x64\Debug\net7.0 - Da Terminale lanciare ProNet con il seguente comando
.\ProNet.exe --migrate-database. Il database verrà automaticamente migrato alla versione corrente del modello Entity framework presente.
Migrazione di database senza firma
- Creare un database vuoto, sarà utilizzato per eseguire l'allineamento.
- Puntare al Db appena creato, modificando opportunamente il file "manager_setting.json" locato in
C:\PROROB\bin\ProNet-IoT\_config. - Compilare "ProNet", se si è partiti da una configurazione di debug troveremo l'eseguibile in
.\industry-pronet_iot\ProNet\bin\x64\Debug\net7.0 - Da Terminale lanciare ProNet con il seguente comando
.\ProNet.exe --migrate-database. Il database verrà automaticamente migrato alla versione corrente del modello Entity framework presente. - Sempre in
C:\PROROB\bin\ProNet-IoT\_configmodificare opportunamente:- "master_db.json" facendolo puntare al Db appena creato
- "current_db.json" facendolo puntare al Db che vogliamo migrare alla nuova versione
- Eseguire "DataBaseHelper" come amministratore, il tool effettuerà l'allineamento in maniera automatica.
ATTENZIONE:
Al momento DataBaseHelper non riempie in maniera autonoma la tabella "__efmigrationhistory". Il Database allineato quindi non sarà considerato firmato con Entity framework nonostante abbia la struttura corretta. Momentaneamente è possibile risolvere il problema riempiendo la tabella manualmente con le righe presenti nel Db generato all'inizio dell'operazione.