DB操作ツール Emacs DBI を作ってみた - 技術日記@kiwanamiVimもーVimもー!
このツールの目的は、クロスプラットフォームで便利なDB操作環境を実現することです。 pgAdmin や MySQL Query Browser のようなGUIの良さをCUIで実現してみようとしてみました。すなわち、ぼくのかんがえたさいきょうのDBツールです。ちなみに、このツールにとってEmacsはただの実行環境です。Emacs使わない人でも使うと便利だと思います。
http://d.hatena.ne.jp/kiwanami/20120305/1330939440
って事で作りました。
mattn/vdbi-vim - GitHubEmacs版はepcというRPCプロトコルを使ってますが、Vimはソケットクライアントを常時接続したままにするにはperl/python/ruby拡張を使う必要があり、場合によっては動かない人もいるのでcurlコマンドとサーバ処理を行うperl部分以外は全てvimスクリプトで動くようにしました。
Database client for Vim
https://github.com/mattn/vdbi-vim
通信は
perl部分については
:VDBI
とするとデータソース/ユーザ名/パスワードを聞かれます。これはedbiと同じく、PerlのDBIモジュールの接続時パラメータになります。例えば以下の様な感じ。SQLite
dbi:SQLite:dbname=/path/to/database/foo.db
MySQL
dbi:mysql:dbname=foo
PostgreSQL
dbi:Pg:dbname=foo
Oracle
dbi:Oracle:foo
無事接続出来るとテーブル一覧が表示されます。各行でエンターキーを押すとカラムビューになります。またこの画面で
<leader>s
をタイプすると SQL 入力ウィンドウが表示されます。入力中に
<c-e>
をタイプすると SQL が実行されてデータビューワに表示されます。この辺は edbi と同じ様な動きになっています。
<c-r>
をタイプするとヒストリが選べるので前に入力した SQL を呼び出す事も出来ます。上で説明したデータソースの履歴も同様です。なかなかいいものが出来たかなーとは思いますが、内部処理を Pure Vimscript でやっている手前、あまり速くはありません。
もしかしたら JSON RPC に作り変えた方がいいかもしれない。まぁこの辺はおいおいやっていくつもりです。
宜しければどうぞー。