La idea se basa en encontrar la forma más optima de crear una sincronización de la base de datos en el móvil sqlite y otra base de respaldo que tenemos en algún hosting, con el fin de mantener los datos en el movil sin necesitar conexión, pero al tener conexión hacer que las beses se sincronicen sin violar la integridad de los datos.
Opción 1) Si hay pocos movimientos en relacion con el tamaño de la BD.
Cada vez que hagas un UPDATE o DELETE, escribe las sentencias DML en un log. Cuando tengas conectividad, envía dicho log; una vez que el servidor confirme que se ha recibido, bórralo.
Opción 2) Hay muchos movimientos pero el tamaño de la BD es pequeña (p.ej., cada 15 segundos guardas la localización del móvil pero sólo guardas los últimos 10 minutos).
Directamente envía la BD SQLite (que al fin y al cabo, se almacena como sentencias DML); el servidor debe vacíar la BD remota y ejecutar todas las sentencias en la BD.
En los dos casos, el problema no es el envío de los cambios en el contenido de la BD, si no hacer un diseño para que, cuando quieras hacer un cambio en la BD del servidor, puedas adaptar la información que te envía el cliente antiguo al nuevo modelo.
Excelente aporte amigo, en mi caso se trata de una base de datos de inventario la cual se administra en pc. un sistema de inventario normal, pero queremos ampliarlo a uso móvil, en si tenemos la idea de realizar 1 app que se encargue de sincronizar la BD remota con la local(sqlite) y otra que realice los movimientos ya sea agregar o modificar el inventario. No se que tan factible es.
Al parecer la que necesitamos es la primera opción que ofreciste.
Hola David, quisiera saber si pudiste encontrar una forma de hacer esta sincronización yo estoy intentando que desde un boton al presionar pueda realizar la sincronización pero no he podido, si me pudieras ayudar enviandome el código que manejas te quedaría eternamente agradecido.
A mi se me ocurre una solución menos elaborada pero que quizás pueda sacarte las castañas del fuego mientras encuentras otra o algo definitivo o no.
Usar alguna firma para tu fichero de BD (md5, sha-1, etc el que quieras) y luego mediante una aplicación que tire de rsync o curl hacer copias de la BD cuando verifiques que la firma ha cambiado.
Mandar solo una firma puede tener un coste aceptable para tus clientes cada cierto numero de minutos según la frecuencia de actualizaciones que puedas calcular que vaya a tener tu BD, o estableciendo pautas de actualizaciones, según sea el caso.
No sé, puede que ya lo tengas estudiado, pero dependiendo del contexto y las prisillas quizás te pueda servir de inspiración.
La idea se basa en encontrar la forma más optima de crear una sincronización de la base de datos en el móvil sqlite y otra base de respaldo que tenemos en algún hosting, con el fin de mantener los datos en el movil sin necesitar conexión, pero al tener conexión hacer que las beses se sincronicen sin violar la integridad de los datos.
23/04/2015 09:34
Opción 1) Si hay pocos movimientos en relacion con el tamaño de la BD.
Cada vez que hagas un UPDATE o DELETE, escribe las sentencias DML en un log. Cuando tengas conectividad, envía dicho log; una vez que el servidor confirme que se ha recibido, bórralo.
Opción 2) Hay muchos movimientos pero el tamaño de la BD es pequeña (p.ej., cada 15 segundos guardas la localización del móvil pero sólo guardas los últimos 10 minutos).
Directamente envía la BD SQLite (que al fin y al cabo, se almacena como sentencias DML); el servidor debe vacíar la BD remota y ejecutar todas las sentencias en la BD.
En los dos casos, el problema no es el envío de los cambios en el contenido de la BD, si no hacer un diseño para que, cuando quieras hacer un cambio en la BD del servidor, puedas adaptar la información que te envía el cliente antiguo al nuevo modelo.
23/04/2015 18:32
Al parecer la que necesitamos es la primera opción que ofreciste.
22/09/2016 23:18
28/04/2015 13:00
Usar alguna firma para tu fichero de BD (md5, sha-1, etc el que quieras) y luego mediante una aplicación que tire de rsync o curl hacer copias de la BD cuando verifiques que la firma ha cambiado.
Mandar solo una firma puede tener un coste aceptable para tus clientes cada cierto numero de minutos según la frecuencia de actualizaciones que puedas calcular que vaya a tener tu BD, o estableciendo pautas de actualizaciones, según sea el caso.
No sé, puede que ya lo tengas estudiado, pero dependiendo del contexto y las prisillas quizás te pueda servir de inspiración.
Un saludo.
18/05/2015 14:29