Python

Primero sigue las instrucciones para compilar e instalar LiteSync desde código fuente o usa los binarios precompilados para tu plataforma. Puedes comenzar con la versión gratuita.

Luego instale el módulo Litesync de acuerdo con la versión de Python:


Python 3

pip install litesync


Python 2.7

git clone --depth=1 https://gitlab.com/litesync/python2 litesync-python2

cd litesync-python2

python setup.py build

sudo python setup.py install


Código de ejemplo

El módulo Litesync tiene la misma API que el módulo sqlite3

import litesync as sqlite3
import json
import time

conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')

# Compruebe si el DB está listo
while not conn.is_ready():
    time.sleep(0.250)

# Ahora podemos usar la conexión DB
...


Notificación de actualización

Su aplicación puede ser notificada cuando se actualiza la base de datos local debido a la sincronización con nodos remotos.La notificación se realiza a través de una función definida por el usuario.

def on_db_update(arg):
print("Actualización recibida")

conn.create_function("update_notification", 1, on_db_update)

IMPORTANTE: La función de notificación es llamada por el hilo del trabajador.¡La aplicación no debe usar la conexión DB dentro de la función de notificación y debe volver lo más rápido posible!La aplicación puede transferir la notificación al hilo principal antes de regresar.




Solución de problemas

También podemos usar el módulo sqlite3 de Python en Linux y Windows

En ambos casos, el módulo sqlite3 del Python interactúa con la biblioteca SQLite del sistema


Linux

Tenemos 2 opciones para hacer Python para usar la biblioteca SQLite modificada que contiene litesync:


A. Use LD_LIBRARY_PATH Al abrir la aplicación

LD_LIBRARY_PATH=/usr/local/lib/litesync python app.py

B. Hacer que el módulo sqlite3 use la biblioteca litesync

sudo apt install patchelf

patchelf --replace-needed libsqlite3.so.0 liblitesync.so /usr/lib/python2.7/lib-dynload/_sqlite3.so

Para verificar si fue exitoso:

ldd /usr/lib/python2.7/lib-dynload/_sqlite3.so


Windows

Reemplace el archivo sqlite3.dll en la carpeta \Python\DLLs con el que contiene litesync (Cambiar el nombre de Litesync-0.1.dll a sqlite3.dll)


Uso

En este caso usamos el módulo sqlite3 en lugar del módulo Litesync

import litesync as sqlite3
import json
import time

conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')

# Compruebe si el DB está listo
while not conn.is_ready():
    time.sleep(0.250)

# Ahora podemos usar la conexión DB
...