Python

最初に、の指示に従って、ソースコードから litesyncをコンパイルしてインストールするか、事前にコンパイルされたバイナリを使用しますプラットホーム。無料版から始めることができます。

次に、Pythonバージョンに従ってLitesYncモジュールをインストールします。


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


例コード

LiteSyncモジュールは、 sqlite3 モジュールと同じAPIを持っています。

import litesync as sqlite3
import json
import time

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

# DBの準備ができているかどうかを確認してください
while not conn.is_ready():
    time.sleep(0.250)

# これで、DB接続を使用できます
...


通知を更新します

リモートノードとの同期により、ローカルデータベースが更新されたときにアプリケーションに通知できます。通知は、ユーザー定義の関数を介して行われます。

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

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

重要:通知関数は、ワーカースレッドによって呼び出されます。アプリケーションは 通知関数内のDB接続を使用する必要があります。できるだけ早く返す必要があります。アプリケーションは、返信する前に通知をメインスレッドに転送できます。




トラブルシューティング

LinuxとWindowsでPythonのSQLite3モジュールを使用することもできます

どちらの場合も、PythonのSQLite3モジュールは、システムのSQLiteライブラリをインターフェースします


Linux

Pythonを作成する2つのオプションがあります。LiteNCを含む変更されたSQLiteライブラリを使用します。


A. LD_LIBRARY_PATH を使用する

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

B. sqlite3モジュールにLiteyncライブラリを使用します

sudo apt install patchelf

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

成功したかどうかを確認するには:

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


Windows

フォルダー \Python\DLLs のsqlite3.dllファイルをLitesyncを含むものに置き換えます(liteync-0.1.dllからsqlite3.dllに名前を変更)


使用法

この場合、LitesYncモジュールの代わりにSQLite3モジュールを使用します

import litesync as sqlite3
import json
import time

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

# DBの準備ができているかどうかを確認してください
while True:
  result = conn.cursor().execute("PRAGMA sync_status").fetchone()
  status = json.loads(result[0])
  if status["db_is_ready"]: break
  time.sleep(0.250)

# これで、DB接続を使用できます
...