如何序列化内存中的SQLite数据库?

时间:2012-08-10 16:19:09

标签: c sqlite

我有一个内存中的SQLite数据库,我想序列化并发送到另一台计算机。如果不将数据库写入磁盘并从那里读取文件,这是否可行?

2 个答案:

答案 0 :(得分:2)

您可以使用在线备份API将内存数据库传输到在共享内存中创建的基于文件的数据库(对于Linux,例如在/ dev / shm中),从而避免磁盘操作。然后将此伪文件传输到远程主机(仍然放在/ dev / shm中),并使用在线加载API从基于文件的数据库传输到目标内存数据库。

请参阅:

http://www.sqlite.org/backup.html

http://www.sqlite.org/c3ref/backup_finish.html

AFAIK,没有API可以在没有中间数据库的情况下执行在线/加​​载。

答案 1 :(得分:2)

以“SQL文本格式转储数据库”的sqlite3 shell program contains a .dump command。您可以使用the source code for .dump(它是公共域)来创建自己的序列化程序。