上下文: python 3.6 脚本每天使用sqlite3模块
多次更新 Sqlite 数据库。
数据库是~500Mo,每次更新加起来~250Ko。
问题:
我提供数据库的每个更新版本,并希望减少传输数据的大小。换句话说,我只想传输更新的内容(通过一种补丁)。
可以使用sqldiff.exe实用程序,但是,每次更新时它都需要创建数据库的本地副本。
问题:
有没有办法,使用Python(通过DB-API 2.0接口或使用Python中的其他方式),在更新数据库的同时生成这种补丁?
第一个想法:在执行提交之前/期间是否可以根据游标
编写补丁(例如更新数据库要执行的操作列表)?
import sqlite3
# Open database
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
# Insert/Update data
new_data = 3.14
cur.execute('INSERT INTO mytable VALUES (?)', (new_data,))
# KEEP TRACK & Save (commit) the changes
conn.dump_planned_actions() # ?????
conn.commit()
conn.close()