SQLite3将数据存储在一个或多个文件中(对于WAL模式)并通过复制数据库文件提出了一种解决方案(示例):
def db_create_backup(
log: logging.Logger,
backup_dir=BACKUP_DIR_NAME,
date_fmt="%Y-%m-%d",
):
backup_path = Path(backup_dir)
backup_path_db = backup_path / DB_DIR_NAME.name
backup_path_db.mkdir(parents=True, exist_ok=True)
...
zip_name = dt.datetime.today().strftime(date_fmt)
zip_name = backup_path_db / zip_name
attempts = 5
for i in range(attempts):
try:
log.info(f"Создание бэкапа базы данных в: {zip_name}")
shutil.make_archive(zip_name, "zip", DB_DIR_NAME)
...
但尽管这种解决方案效率很高,但它还是引起了人们的怀疑——它看起来像自行车拐杖。
是否可以更正确地创建 sqlite3 备份?





