Contexte:
Un script python 3.6 est mise à jour une base de données SQLite plusieurs fois par jour en utilisant le module sqlite3.
La base de données est ~ 500Mo, chaque mise à jour ajoute ~ 250Ko.Créer des correctifs de base de données mise à jour Sqlite tout
Problème:
je livrerai toutes les versions mises à jour de la base de données et souhaite réduire la taille des données transférées. En d'autres termes, je souhaite transférer uniquement le contenu mis à jour (via un type de patch).
Le programme utilitaire sqldiff.exe pourrait être utilisé pour cela, néanmoins, il nécessite de créer une copie locale de la base de données chaque fois que je le mets à jour.
Question:
Est-il possible, en utilisant Python (par le DB-API 2.0 interface ou en utilisant d'autres moyens en Python), pour générer ce type de correctif en mettant à jour la base de données?
pensées Première:
Ne serait-il possible d'écrire un patch (par exemple une liste d'actions à faire pour mettre à jour la base de données) en fonction du curseur avant/pendant l'exécution de la commettre?
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()
La [extension de session] (http://www.sqlite.org/sessionintro.html) n'est pas activée en Python. –
@CL. Connaissez-vous des solutions de contournement? Merci –