首页 > 解决方案 > 如何以编程方式备份​​ Peewee 数据库(SqliteQueueDatabase)?

问题描述

我在我的一个项目中使用 Peewee。具体来说,我正在使用SqliteQueueDatabase并且我需要在不停止我的应用程序的情况下创建一个备份(即另一个 *.db 文件)。我看到有两种方法可以为我工作(backupbackup_to_file),但它们是来自的方法CSqliteExtDatabase,并且SqliteQueueDatabase是的子类SqliteExtDatabase。我找到了手动创建文件转储的解决方案,但我需要一个 *.db 文件(例如,不是 *.csv 文件)。找不到任何类似的问题或相关答案。

谢谢!

标签: pythonsqlitepeewee

解决方案


您可以从中导入backup_to_file()帮助playhouse._sqlite_ext程序并将其传递给您的连接和文件名:

db = SqliteQueueDatabase('...')

from playhouse._sqlite_ext import backup_to_file
conn = db.connection()  # get the underlying pysqlite conn
backup_to_file(conn, 'dest.db')

此外,如果您使用的是 pysqlite3,那么连接本身也有可用的备份方法。


推荐阅读