sqlite3.connect(':memory:') として
メモリ上に作成されたDBイメージは、
ダンプファイルにすることで保存できます。
以下のサンプルではダンプファイルはgzipで格納してます。
#ファイルからロード
con = sqlite3.connect(':memory:')
fp = gzip.open('./dump.sql.gz' ,'rb')
con.executescript(fp.read())
fp.close()
#ファイルへセーブ
fp = gzip.open('./dump.sql.gz','wb')
for line in con.iterdump():
fp.write('%s\n' % line)
fp.close()
ただし、この方法では件数が増えると、
ロードにとても時間がかかるため実用的ではありません。
実用上ではsqlite3.connect(':memory:')を使わず
tmpfsにdbファイルを置いたほうがいいです。