Python

O método padrão é substituir a biblioteca SQLite pré-instalada com a que compilamos contendo o LiteSync.


Linux

O módulo sqlite3 do Python faz interface com a biblioteca instalada libsqlite3.so.0

Podemos checar essa informação utilizando o comando abaixo:

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


1. Obtenha o LiteSync

Você pode tanto compilá-lo ou utilizar os arquivos binários pré-compilados. Você pode solicitá-los por e-mail para fins de teste.

Ele deve ser instalado na pasta /usr/lib.


2. Instalação para o Python

Temos 3 opções para fazer com que o Python utilize a biblioteca modificada do SQLite contendo o LiteSync:


A. Utilize a variável de ambiente LD_LIBRARY_PATH quando abrir o Python

LD_LIBRARY_PATH=/usr/lib python app.py

B. Sobrescreva a biblioteca pré-instalada

cd /usr/lib/arm-linux-gnueabihf  (or x86_64-linux-gnu, it depends on the architecture)

ln -sf /usr/lib/libsqlite3.so.0 libsqlite3.so.0

C. Configure o rpath na biblioteca wrapper

Para isso, precisamos do patchelf:

git clone https://github.com/NixOS/patchelf

cd patchelf

./bootstrap.sh

./configure

make

sudo make install

Para configurar o rpath na biblioteca wrapper:

patchelf --set-rpath /usr/lib /usr/lib/python2.7/lib-dynload/_sqlite3.so

Para checar se foi bem-sucedido:

objdump -p /usr/lib/python2.7/lib-dynload/_sqlite3.so | grep RPATH


Windows

Substitua o arquivo sqlite3.dll na pasta \Python\DLLs pelo que contém o LiteSync.


Utilização

Dessa forma, podemos utilizar o módulo sqlite3 normalmente, passando uma URI no lugar do nome do arquivo.

Código de exemplo:

import sqlite3

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