Этот скрипт зависает на con.backup
:
#!/usr/bin/env python3
import sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t (a INTEGER PRIMARY KEY)")
cur.execute("INSERT INTO t (a) VALUES (NULL)")
bkp = sqlite3.connect('database.db')
con.backup(bkp)
bkp.close()
con.close()
Но если я прокомментирую INSERT
, он отлично работает:
#!/usr/bin/env python3
import sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t (a INTEGER PRIMARY KEY)")
# cur.execute("INSERT INTO t (a) VALUES (NULL)")
bkp = sqlite3.connect('database.db')
con.backup(bkp)
bkp.close()
con.close()
Есть идеи, что я делаю не так?
Он отлично работает при добавлении con.commit()
. Библиотека libsqlite3 по умолчанию работает автоматически, и я подумал, что модуль python тоже. Итак, я проверил документацию, и это не так :-(. Большое спасибо!
Что если вы сделаете коммит перед резервным копированием?