2011-06-13 27 views
8

Duplicar posible:
how to sync SQLite database on android phone with MySQL database on server?bases de datos de sincronización MySQL SQLite

Me pregunto ¿cuál es el mejor método para actualizar una base de datos en una aplicación.

Tenemos una base de datos mysql que maneja todo en el servidor principal, pero quiero replicar esto en mi aplicación. Me gustaría copiar la base de datos (mysql) en el dispositivo Android para que ambos estén actualizados. esto no debería ocurrir en tiempo real, pero podría programarse una vez por semana o cuando se realiza un cambio en la base de datos SQL.

¿Cómo haré tal cosa?

Como en caso de que deba enviar esto como una actualización de la aplicación y crear la base de datos modificada, o debería usar alguna forma de cambiar la base de datos en el servidor, y copiar la base de datos SQLite en el aplicación Android.

O ... ¿hay alguna forma inteligente de hacer esto?

Gracias Pat

Respuesta

2

Por qué no usar una marca de tiempo (o campo de versión) en la base de datos MySQL en su servidor, a continuación, cuando se ejecuta la aplicación para Android que implica comprueba la marca de tiempo/Versión para ver si hay un cambio ya que necesita ser actualizado. Si la marca de tiempo/versión es más reciente que la encontrada anteriormente, descargue el conjunto de datos actualizado, simplemente use lo que ya está almacenado.

+0

Gracias Peetz Nice Idea con una marca de tiempo, pero ¿cómo descargo el conjunto de datos en el teléfono? o debería enviarlo como una actualización de la aplicación? Este es el punto donde me confunden en cuanto a la configuración del diseño. – pat

+1

No es necesario utilizar una actualización de la aplicación, simplemente forme una conexión con su servidor (es decir, una página específica escrita para este propósito) y póngale algunos parámetros. Esto debería hacer eco de un conjunto de datos XML o JSON en el dispositivo. No estoy seguro del código exacto, pero algo en la línea de XMLHTTPRequest puede ser el camino a seguir. – Peetz

1

A menos que desee procesar toda la información en el dispositivo (dependiendo de qué tan grande sea la base de datos ... etc ...) probablemente sea mejor realizar la conversión fuera de línea en el servidor y transferir los archivos. Hay algunas herramientas disponibles para convertir su base de datos MySQL en SQLite. http://forums.mysql.com/read.php?145,68269,92627

+0

Gracias Matthieu, buen enlace – pat

+0

¿cómo puedo lograr esto en Windows? –

Cuestiones relacionadas