Python

Primeiro, siga as instruções para compilar e instalar litesync a partir do código-fonte ou usar os binários binários pré-compilados para o seuplataforma.Você pode começar com a versão gratuita.

Em seguida, instale o módulo Litesync de acordo com a versão 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 exemplo

O módulo Litesync tem a mesma API que a sqlite3

import litesync as sqlite3
import json
import time

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

# Verifique se o banco de dados está pronto
while not conn.is_ready():
    time.sleep(0.250)

# agora podemos usar a conexão de banco de dados
...


Atualizar notificação

Seu aplicativo pode ser notificado quando o banco de dados local é atualizado devido à sincronização com nós remotos.A notificação é feita através de uma função definida pelo usuário.

def on_db_update(arg):
  print("update received")

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

IMPORTANTE: A função de notificação é chamada pelo thread do trabalhador.O aplicativo deve não usar a conexão DB dentro da função de notificação e deve retornar o mais rápido possível!O aplicativo pode transferir a notificação para o encadeamento principal antes de retornar.




Solução de problemas

Também podemos usar o módulo SQLITE3 do Python no Linux e Windows

Nos dois casos, o módulo SQLite3 do Python interfina com a biblioteca SQLite do sistema


Linux

Temos duas opções para fazer Python para usar a biblioteca SQLite modificada que contém Litesync:


A. Use o LD_LIBRARY_PATH ao abrir o aplicativo

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

B.Faça o módulo SQLITE3 usar a biblioteca Litesync

sudo apt install patchelf

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

Para verificar se foi bem sucedido:

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


Windows

Substitua o arquivo sqlite3.dll na pasta \Python\DLLs por um contendo litesync (renomeie de litesync-0.1.dll para sqlite3.dll)


Uso

Nesse caso, usamos o módulo sqlite3 em vez do módulo Litesync

import litesync as sqlite3
import json
import time

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

# Verifique se o banco de dados está pronto
while not conn.is_ready():
    time.sleep(0.250)

# agora podemos usar a conexão de banco de dados
...