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