SQLiteのスキーマ定義をHTML形式で出力する
SQL形式ので出力なら以下のコマンドでできるんだけど、
$ sqlite3 db_file ".schema"
HTML形式で見たかったのでサックリとシェルスクリプトを書いた。あとでまた使うかもしれないのでメモっておく。
# sqlite_schema.sh sqlitedb=$1 echo "<html><body>" for i in `sqlite3 ${sqlitedb} ".tables"` do echo "<h2>${i}</h2><ul>" for j in `sqlite3 ${sqlitedb} "PRAGMA table_info(${i});" | awk 'BEGIN{FS="|"}{printf "%s(%s)\n", $2, $3}'` do echo "<li>${j}</li>" done echo "</ul>" done echo "</body></html>"
使い方はこんな感じ。
$ sh sqlite_schema.sh db_file
スキーマだけじゃなく中のデータも出力したい場合
中のデータも出力したくなったときはこちらを。
# sh sqlite_dump.sh db_file sqlitedb=$1 echo "<html><body>" for i in `sqlite3 ${sqlitedb} ".tables"` do echo "<h2>${i}</h2>" echo "<table border=1>" echo "<tr>" for j in `sqlite3 ${sqlitedb} "PRAGMA table_info(${i});" | awk 'BEGIN{FS="|"}{printf "%s\n", $2}'` do echo "<th>${j}</th>" done echo "</tr>" sqlite3 -html ${sqlitedb} "select * from ${i};" echo "</table>" done echo "</body></html>"