visq3

SQLite3のDBファイルのテーブルの値をいじくる visq3 を作ってみた。

口上

SQLite3によって一気にRDBMSが身近になったものの、 データ保存を伴うスクリプトとかをSQLite3にしようとか思って早幾年、 なんか踏み切れない。

なんでかっつーと、

データをごにょごにょっとできない感

があるんじゃないかと。テストデータを突っこんで、あ、違った、とか 直したいときに、

update hoge set somecol='New Record' where uid=1234;

とかね。わかるけどさあ、タイプ数多いって。 だからついついYAMLとかテキスト形式の DB使っちゃう。

けど、シェルスクリプトで構築したシステムのDBを換えようとしたときに YAMLって訳に行かなくて(使えないから)、悩んだ。YAMLをいじくる Query Language がないからフロントエンドもない。 SQLite3だとsqlite3コマンドがある。じゃあRDBのほうが シェルスクリプトとの親和性が高いってことか。

ならsqlite3ファイルをごにょごにょできるようになればいいんだけど...

あ、それってwrapper作るだけで十分じゃん。 ということで: visq3

使用例

おー、これでCGIのセッションキーとかのデバッグが楽になった。

あとがき1

これ psql とか mysql とかでも使える手法だな。

あとがき2

さいしょ Ruby の sqlite3 ライブラリで作ったのだが、csv化するときに 文字コードUTF-8じゃないとダメってことで却下。 起動もシェルスクリプトより遅いし。

ちなみにsqlite3はUTF-8のみの対応だが、実際にはデータにeuc-jpとか 入ってても出し入れは機能する。ただし、SELECT 時の LIKE 演算子が正常に機能しない。= では正常に取れる。 日本語部分でLIKE検索するようなものでなければ euc-jp でも行けるようだ(要追試)。