概要
SQLite を使って複数のファイルやフォルダを一つのファイルにまとめることができる。 よく知られているアーカイブ手法としてzipやtarなどがあるが、 SQLiteのアーカイブはSQLを使って格納されているファイルを調べることが出来るのが特徴。
アーカイブファイルはzipやtarコマンドで完璧に管理できてるよ、という場合には使わなくてもよい。 アーカイブファイルをSQLで確認出来ることに魅力を感じる、というのであれば試してみるといい。
SQLite 独自アーカイブを利用するにはコマンドラインツールのver 3.23.0 以降が必要。
アーカイブファイルを作ってファイルを出し入れしてみる
まず空のアーカイブを作成し、そこにテキストファイルを出し入れしてみる。 ここではアーカイブの拡張子を「.sqlar」としているが、なんでもいい。
環境
- Windows 10 64bit
- SQLite3 ver.3.39.2
C:\temp> rem # 1.
C:\temp> sqlite3 archive.sqlar -Ac
C:\temp> rem # 2.
C:\temp> sqlite3 archive.sqlar -Ai ./sample.txt
C:\temp> rem # 3.
C:\temp> sqlite3 archive.sqlar -At
sample.txt
C:\temp> rem # 4.
C:\temp> sqlite3 archive.sqlar -Ax ./sample.txt
- 「archive.sqlar」という新規ファイルを作成する
- 「archive.sqlar」に「sample.txt」を追加する
- 「archive.sqlar」に格納されているファイルを確認する
- 「archive.sqlar」から「sample.txt」を取り出す
アーカイブの中身をSQLで確認する
sqliteアーカイブには「sqlar」というテーブルがあり、 アーカイブされたファイルの情報が格納されている。
C:\temp>rem # 1.
C:\temp>sqlite3 archive.sqlar -Ac
C:\temp>
C:\temp>rem # 2.
C:\temp>sqlite3 archive.sqlar -Ai ./sample.txt
C:\temp>
C:\temp>rem # 3.
C:\temp>sqlite3 archive.sqlar
SQLite version 3.39.2 2022-07-21 15:24:47
Enter ".help" for usage hints.
sqlite> -- # 4.
sqlite> .tables
sqlar
sqlite> .mode box
sqlite> -- # 5.
sqlite> select * from sqlar;
┌──────────────┬───────┬────────────┬────┬────────────────────┐
│ name │ mode │ mtime │ sz │ data │
├──────────────┼───────┼────────────┼────┼────────────────────┤
│ ./sample.txt │ 33206 │ 1660972613 │ 18 │ This is sample.txt │
└──────────────┴───────┴────────────┴────┴────────────────────┘
最初は概念とアーカイブの作り方、ファイルの出し入れができればOK。
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
SQLite Archive Files
公式のSQLite形式のアーカイブに関するドキュメント
https://sqlite.org/sqlar.html