Base de datos SQLite al actualizar la aplicación en la tienda

Estoy usando sqlite en mi aplicación de iOS, mi file de database se llama data.db. Supongamos que solo tengo una tabla y presiono la aplicación en AppStore. En la próxima versión, actualicé el file data.db y agregué otra tabla y presioné la aplicación en AppStore. Entonces, las preguntas son, el usuario que tiene la versión anterior y actualiza la aplicación, ¿tendrá el nuevo data.db con las 2 tablas? ¿O guarda el antiguo data.db? Si conserva el antiguo, ¿cómo puede actualizar su data.db mediante progtwigción? Y si él obtendrá el nuevo, entonces puede ser una mala idea si voy a almacenar sus datos personales en el file data.db.

Cuando distribuye una aplicación con una database, esa database se almacena en el package. Si el usuario necesita actualizar la database, la aplicación no puede actualizar mediante progtwigción el file en el package, por lo que generalmente copy la database desde el package a la carpeta Documentos (si aún no lo hizo) y luego la aplicación puede actualizar Esa versión de Documentos con nueva información del usuario.

Cuando distribuye actualizaciones de la aplicación, el file del package se reemplaza o actualiza, pero la copy del usuario en la carpeta Documentos permanece allí a less que la elimine explícitamente mediante progtwigción (o el usuario desinstale manualmente la aplicación). Entonces, usando su ejemplo, la database en el package tendrá las dos tablas (pero sin los datos del usuario), y la copy en la carpeta Documentos tendrá solo una tabla (pero con los datos del usuario).

Si desea una database única con las dos tablas, pero también con los datos del usuario, tendrá que copyr la nueva database de dos tablas en la carpeta Documentos y luego actualizar esta versión con los datos de usuario de la database de Documentos anterior. O, alternativamente, puede include un script que altera la database del usuario, por lo que ahora incluye ambas tablas (por ejemplo, la ALTER TABLE y CREATE TABLE necesarios).

Como un aparte, es útil hacer un seguimiento de la versión de una database, ya sea mediante la inclusión de una tabla de "configuration" que contiene esta información, o haciendo uso de la user_version de user_version o schema_version pragmas. De esa forma, puede inspeccionar la database mediante progtwigción y determinar qué curso de acción puede necesitar tomar.