Firefoxのsqlite DBファイルをvacuum

sqliteにもvacuumあるらしいですね。作り直してコピーするという内容らしいですが、作って消して…と繰り返しているDBはかなり小さくなるという噂。

sqliteは便利です。ほかのプログラムに組み込みやすいし、設定も少ないのにSQLを食えるので、いろんなところで使われています。blogのDBに使っている人もいるし、tracのDBなんかも普通はsqliteですよね。

sqliteはFirefoxにも組み込まれている。そこで、Firefoxのプロファイルディレクトリにあるsqliteファイルをvacuumするスクリプト。

パス名がWindows用です。Linuxで使う場合はbasedirに$HOME/.mozilla/firefoxを入れればよいと思われます。Firefoxを閉じてから実行しないとエラーになります。

#! /usr/bin/python

import os,sys
import sqlite3
import glob

basedir=os.path.join(os.environ["APPDATA"], "Mozilla", "Firefox", "Profiles")

for i in glob.glob(os.path.join(basedir, "*.*", "*.sqlite")):
    print i[len(basedir):]
    con=sqlite3.connect(i)
    c=con.cursor()
    c.execute("vacuum")
    con.close()

確かに、けっこう小さくなりますね。まあ、Firefoxのファイルに関しては気休め程度です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です