versiones una que para las instalar evitar descargar como apps apple app aplicaciones anteriores anterior actualicen ios sqlite3 app-store

ios - una - itunes



ActualizaciĆ³n de la nueva versiĆ³n a la tienda de aplicaciones con diferentes estructuras sqlite db (2)

Puede comprobar en el inicio si es el antiguo db y, de ser así, tener una rutina para crear un nuevo db con la nueva estructura (con un nombre temporal), copiar todos los datos del antiguo al nuevo, cerrar el db anterior y eliminar cerrar el nuevo db, cambiarle el nombre y, finalmente, abrirlo de nuevo para que lo use su aplicación actualizada. Fácil, rápido, y no necesita un conocimiento profundo de SQLite para hacerlo.

Cargué una aplicación en la tienda de aplicaciones (versión 1.0). Mi aplicación está usando una base de datos sqlite para almacenar algunos datos. Ahora, he realizado algunos cambios en la base de datos (he agregado 2 o 3 columnas nuevas en una de las tablas en mi db). Quiero actualizar la versión anterior de mi aplicación con la nueva versión 1.1 (que tiene una estructura de db diferente). Ahora, cuando los usuarios que ya están utilizando la versión 1.0 actualizan la aplicación a la versión 1.1, el archivo db ya está presente en la zona de pruebas de la aplicación y, por lo tanto, la aplicación apunta a la versión 1.1, pero mi base de datos sigue siendo la anterior. Quiero tener el nuevo db con los datos antiguos, si hay alguno. Por favor, ayúdame. Gracias.


sqlite admite algo llamado como propiedad de versión de usuario, puede ejecutar PRAGMA user_version para consultar la versión de esquema actual de su aplicación db. Esta consulta puede realizarse al principio cuando se inicia la aplicación.

para actualizar esta versión de usuario ejecute la siguiente consulta de actualización PRAGMA user_version = version_num ;

Siempre que cree sqlite db, es una buena práctica poner esta propiedad user_version, de modo que cuando esté actualizando en el futuro pueda consultar el valor actual. Compruebe lo que debe ser y ejecute las modificaciones restantes o cree tablas para actualizar su versión de esquema.

Por ejemplo:

En la primera versión creo table1 con col1, col2

Ejecuto sql para crear table1 y una vez que se hace con éxito, ejecuto pragma user_version = 1. así que esto indicará que mi versión actual del esquema es 1

En una versión futura agrego nueva col3, necesito cambiar mi versión de esquema a 2

Primero consulto user_version, verifico su valor y si es 1, entonces necesita ejecutar alter script para agregar una nueva columna y establecer la versión de usuario en 2.

En su caso, dado que no ha configurado la versión de usuario antes, sería difícil diferenciar una instalación nueva frente a una situación de actualización. Por lo tanto, por ahora puede suponer que si db está presente, es un escenario de actualización y ejecutar los scripts alternos y, si no está presente, suponga que es un nuevo escenario de instalación y ejecute crear scripts. Pero mira si puedes usar el pragma anterior para resolver tu problema al menos en el futuro.