SQLite是否支持复制?

kdt*_*kdt 26 sql sqlite replication database-design embedded-database

在嵌入SQLite3并使用内存数据库的应用程序中,是否可以在应用程序的两个运行实例之间复制数据库?我可以通过自制协议复制我的所有数据库访问来手动执行此操作,但它似乎应该在数据库层内完成.

Aar*_*lla 13

蛮力方法:发送".dump"命令以创建数据的文本表示.将该数据读入第二个数据库.不确定你可以使用它.

如果您需要细粒度的更新(将每个副本发送到另一个副本),请查看 sqlite3_update_hook

但是你打算如何处理错误呢?例如,当app2中的数据库副本由于某种原因无法进行更新时会发生什么?

要解决此问题,请将数据库移至服务器进程并让两个应用程序进行通信.


O'R*_*ney 7

开箱即用,没有。有少量第三方选项:

SQLite 同步:https : //ampliapps.com/sqlite-sync/这个看起来很有吸引力,因为它可以复制到其他数据库以及 SQLite,并且不会修改 SQLite 引擎。我还没试过。

Litereplica:http ://litereplica.io/仅一种方式。好像有点过了。

LiteSync:http ://litesync.io/双向复制。相当新,但 Litereplica 的演变可能比它看起来更成熟。我已经尝试了一点,它似乎工作顺利,开发人员正在查看一些错误。您必须使用开发人员修改后的 SQLite 引擎,这似乎是一个相关的依赖项。您也没有太多控制权,例如,您不能在不重新打开数据库的情况下说“现在复制”。