Emacsのsql-modeで簡単にSQL文を実行する
環境は,
"emacs sqlite"などでぐぐってみても情報はそんなに多くない気がしたのでまとめてみる.
まずはsqlite3の準備
Ubuntu 9.10には最初からsqlite3が入っている.
ターミナルでsqlite3というコマンドで普通に使える.
しかし,Emacsで使うにはちょっと工夫が必要.
Emacsだと
M-x sql-sqlite
でsql-modeに入れるけど,dbファイルとかをちゃんと指定しても
Searching for program: no such file or directory, sqlite
のように出るはず.これはsqliteというコマンドを探しているため.
実際はsqlite3というコマンドなので,当然うまくいかない.
これはシンボリックリンクを張ってやればよい.
まずwhichでsqlite3の場所を探す.
% which sqlite3 /usr/bin/sqlite3
Ubuntu 9.10の場合/usr/bin/sqlite3にあるようだ.
場所がわかったらシンボリックリンクを張る.
% sudo ln -s /usr/bin/sqlite3 /usr/bin/sqlite
また,ルート権限がない場合などは上記の方法は使えない.
パスの通った場所ならどこにリンクを張ってもよいので,~/binにパスを通しているとすると
% ln -s /usr/bin/sqlite3 ~/bin/sqlite
でも同じ.
(2010-10-07) 追記
Ubuntu 10.04 には標準で splite3 が入っていなかった.
その場合は以下のコマンドでインストール.
% sudo aptitude install sqlite3
splite3 は上記と同様に /usr/bin 以下にインストールされるので,上記と同様の手順でシンボリックリンクを張る.
% which sqlite3 /usr/bin/sqlite3 % sudo ln -s /usr/bin/sqlite3 /usr/bin/sqlite
sql-modeを使う
Emacsを,dbファイルがあるディレクトリで起動する.
そして以下のコマンドを入力.
M-x sql-sqlite
パスワードなどを設定していない場合は,Databaseだけ入力すれば良い.
SQLite version 3.6.16 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
このような新しいバッファが開かれると起動成功.
あとはターミナルで起動したときと同じように使える.