is is it better to have these scripts embedded into code itself or should I have physically SQLite3 files located in some settings directory which from the app loads them at first run
Avere questi file SQLite3 situati in alcune directory delle impostazioni renderà possibile agli utenti delle applicazioni, o agli amministratori che lo installano, di modificarli e / o manipolarli. Quindi la risposta corretta alla tua domanda è: dipende da se vuoi consentire , oppure se vuoi impedire questo. Esiste un software in cui consentire ad altre persone questo tipo di personalizzazione è perfetto, e c'è un software in cui consentire ad altre persone questo sarebbe pericoloso. Scegli la tua scelta in base alla categoria in cui cade la tua app.
Inoltre, se si dispone di diversi file di database SQLite, ognuno di essi contiene informazioni sullo schema. Pertanto, quando per versioni successive o versioni del software è necessario apportare modifiche allo schema, assicurarsi di non dover modificare manualmente ciascun file SQLite, uno alla volta. Un altro fattore è il controllo della versione: i file binari non sono adatti per gli strumenti di diff / merge, gli script SQL o il codice testuale funzionano molto meglio con questo. Quindi, anche se decidi di distribuire i file SQLite binari per le impostazioni direttamente al tuo utente finale e di non incorporare il codice creazionale direttamente nella tua app, dovresti almeno avere il codice in una specie di strumento generatore interno, che è mantenuto nel controllo della versione invece dei file binari.