SQLite en aplicación móvil creada inApp o aportada como recurso

B

Pues eso, no sé si me explico bien en el título, imagino que no.
Estoy haciendo una app móvil en flutter donde preciso de una base de datos en sqlite.
La cosa es, que esa base de datos tendrá un numero determinado de tablas donde algunas de ellas estarán ya rellenas con la información que yo quiero, pero esa base de datos se puede modificar para añadir, cambiar o quitar registros en otras tablas que se relacionan con las que ya tienen datos aportados por mí.
La cosa es, ¿Creo la base de datos desde cero con sql al momento de instanciar la base de datos por primera vez o aporto físicamente la base de datos como un asset?
Mi duda viene porque, si yo limpio los datos de la aplicación desde Android, con sql al instanciar por primera vez de nuevo la base de datos la creará, de la otra forma, si la aporto físicamente y borra los datos de aplicación, ¿borra también ese recurso de base de datos? Y si se borra, ¿cómo crea la base de datos sin reinstalar el apk? o ¿se queda como está y no borra los registros nuevos y modificados que yo aporto de inicio?
Siempre he usado bases de datos en la nube y nunca se me ha planteado esta duda que igual es obvia pero no sé cómo hacerla.

PD: Y otra cosa, ¿Se puede usar Android Device Monitor sin Android Studio desde Visual Studio Code o desde el emulador o el AVD?

r2d2rigo

Los archivos que vienen en el APK son siempre de solo lectura, asi que antes de escribir en esa BBDD vas a tener que hacer una copia al local storage para poder modificarla.

Si tu BBDD ya va a tener alguna informacion precargada es mejor que adjuntes el .sqlite en vez de tener scripts de inicializacion y seeding, IMHO.

1 respuesta
B

#2 al final me decanté por hacerla en código con una transacción sql creando tablas y luego insertando los valores fijos que quiero.

#2r2d2rigo:

Si tu BBDD ya va a tener alguna informacion precargada es mejor que adjuntes el .sqlite en vez de tener scripts de inicializacion y seeding, IMHO.

No entiendo muy bien qué quieres decir. Lo hago con transacción y execute tabla por tabla e inserción de datos por tabla.

Ranthas

Lo que te está diciendo es que en lugar de cargar tú los datos en la bbdd, directamente uses un fichero .sqlite con todos los datos que necesites precargados.

Un .sqlite es un fichero con el export de la bbdd

1 respuesta
B

#4 y qué diferencia hay entre cargar la SQL del .sqlite o hacer un execute desde un .dart?
Comodidad? Seguridad? Optimización?