Python

Suivez d'abord les instructions vers compiler et installer litesync du code source ou utiliser le binaires pré-compilés pour votreplateforme.Vous pouvez commencer par la version gratuite.

Installez ensuite le module Litesync en fonction de la version 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


Exemple de code

Le module Litesync a la même API que le sqlite3 module

import litesync as sqlite3
import json
import time

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

# Vérifiez si la base de données est prête
while not conn.is_ready():
    time.sleep(0.250)

# Maintenant, nous pouvons utiliser la connexion DB
...


Mettre à jour la notification

Votre application peut être informée lorsque la base de données locale est mise à jour en raison de la synchronisation avec les nœuds distants.La notification est effectuée via une fonction définie par l'utilisateur.

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

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

Important: La fonction de notification est appelée par le fil du travailleur.L'application doit pas utiliser la connexion DB à l'intérieur de la fonction de notification et elle doit revenir le plus rapidement possible!L'application peut transférer la notification vers le thread principal avant le retour.




Dépannage

Nous pouvons également utiliser le module SQLite3 du Python sur Linux et Windows

Dans les deux cas, le module Sqlite3 de Python interface avec la bibliothèque SQLite du système


Linux

Nous avons 2 options pour faire du python pour utiliser la bibliothèque SQLite modifiée contenant du litesync:


A.Utilisez LD_LIBRARY_PATH lors de l'ouverture de l'application

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

B. Faites en sorte que le module SQLite3 utilise la bibliothèque litesync

sudo apt install patchelf

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

Pour vérifier si ça a réussi:

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


Windows

Remplacez le fichier sqlite3.dll dans le dossier \Python\DLLs par celui contenant litesync (renommer de litesync-0.1.dll à sqlite3.dll)


usage

Dans ce cas, nous utilisons le module SQLite3 au lieu du module Litesync

import litesync as sqlite3
import json
import time

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

# Vérifiez si la base de données est prête
while not conn.is_ready():
    time.sleep(0.250)

# Maintenant, nous pouvons utiliser la connexion DB
...