如何以编程方式备份​​ Peewee 数据库(Sqlite 队列数据库)?

How to backup Peewee database (SqliteQueueDatabase) programatically?

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

谢谢!

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

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,则连接本身也有可用的备份方法。