【问题标题】:How to backup Peewee database (SqliteQueueDatabase) programatically?如何以编程方式备份​​ Peewee 数据库(SqliteQueueDatabase)?
【发布时间】:2021-08-11 17:18:06
【问题描述】:

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

谢谢!

【问题讨论】:

  • 不能直接复制文件吗?

标签: python sqlite peewee


【解决方案1】:

您可以从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,那么连接本身也有可用的备份方法。

【讨论】:

  • 太棒了,这对我来说非常有效。在有关backup_to_file 的文档中找不到那么多,除了我已经引用的内容。无论如何,谢谢你的回答。另外,我真的很佩服你为自己的图书馆所做的伟大工作,我到处都找到了你的答案,看到这真的很鼓舞人心。再次感谢!
  • @coleifer 如果我不能使用 cython 怎么办?其实为什么只有CSqliteExtDatabase才有这个方法呢?
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多