Web/DB プログラミング徹底解説

ホーム > 雑記帳 > Firefox における SQLite

Firefox における SQLite

SQLite は Firefox のデータストレージとして非常に重要な役割を担っています。

Firefox の SQLite データベースは %APPDATA%\Mozilla\Firefox\Profiles\xxxxx.default 以下に *.sqlite ファイルが多数存在していることがわかります。 この中にブックマーク情報、ヒストリ情報、クッキー情報などが格納されています。

例えば、places.sqlite の中を見てみましょう。

> sqlite3 places.sqlite
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE moz_anno_attributes (  id INTEGER PRIMARY KEY, name VARCHAR(32) UNI
QUE NOT NULL);
CREATE TABLE moz_annos (  id INTEGER PRIMARY KEY, place_id INTEGER NOT NULL, ann
o_attribute_id INTEGER, mime_type VARCHAR(32) DEFAULT NULL, content LONGVARCHAR,
 flags INTEGER DEFAULT 0, expiration INTEGER DEFAULT 0, type INTEGER DEFAULT 0,
dateAdded INTEGER DEFAULT 0, lastModified INTEGER DEFAULT 0);
CREATE TABLE moz_bookmarks (  id INTEGER PRIMARY KEY, type INTEGER, fk INTEGER D
EFAULT NULL, parent INTEGER, position INTEGER, title LONGVARCHAR, keyword_id INT
...
rks FOR EACH ROW WHEN OLD.keyword_id NOT NULL BEGIN DELETE FROM moz_keywords WHE
RE id = OLD.keyword_id AND NOT EXISTS ( SELECT id FROM moz_bookmarks WHERE keywo
rd_id = OLD.keyword_id AND id <> OLD.id LIMIT 1 );END;
sqlite>

上記のようにコマンドからファイルを開きスキーマ情報も確認することが可能です。

よくみると moz_bookmarks というテーブルがありますが、これこそが Firefox のブックマーク情報を保持しています。 以前のバージョンの Firefox ではひとつの XML ファイルに管理されていましたが、現在はこのように SQLite データベースに移行されています。