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.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
...