Originariamente ho postato questo su overflow dello stack, ma mi è stato detto che qui è un posto migliore per chiedere questo genere di cose. Non sono riuscito a trovare altre risposte simili, ma se ce n'è una per favore dammi un link.
Sto sviluppando un software che utilizza un database ospitato su un server principale (MSSQL). Più client possono essere connessi allo stesso server in qualsiasi momento. Sto utilizzando Entity Framework con l'approccio Code-First.
La mia preoccupazione è il modo in cui il database verrà distribuito e successivamente aggiornato. Dal momento che stiamo parlando di un database centralizzato, la migrazione automatica del database eseguita da uno qualsiasi dei client è fuori questione a mio avviso. Stavo pensando di utilizzare un'app di configurazione del server separata che si connetterà al server (database) ed eseguirà la creazione del database (solo la prima volta) e la migrazione quando necessario.
Anche il motivo per cui penso che la migrazione automatica del database non possa funzionare nel mio caso è che ogni volta che un client viene eseguito, controlla se c'è una migrazione disponibile per il database e se lo è, lo applicherà. Ciò, tuttavia, potrebbe causare problemi ad altri client che non sono ancora stati aggiornati. Ecco perché penso che dovrebbe esserci un'app di configurazione che aggiorna il database indipendentemente da qualsiasi client.
Pensi che questo sia un buon modo per risolvere il problema o ce n'è uno migliore?