EmacsからPostgreSQLに接続したら楽だったのでメモ
Emacsを起動後、sql-postgresコマンドでサーバーに接続
M-x sql-postgres
ユーザー名・データベース名・サーバーを入力して接続。
.pgpassファイルを作っておけばパスワード入力しなくて済む。
.pgpassのパーミッションは600にしておく。
#~/.pgpass localhost:5432:データベース:ユーザー:パスワード
別バッファで.sqlファイルをsql-modeで開く。
構文ハイライトがデフォルトでansiなので、これをsql-set-productコマンドを使ってpostgresに変える
M-x sql-set-product ⏎ postgres
そしてバッファとSQLコネクションをsql-set-sqli-bufferコマンドで関連付ける。
M-x sql-set-sqli-buffer
「*SQL*」というバッファがあるのでそれを選ぶ。
つながったら「C-c C-r」でリージョン内のクエリを実行出来る。
バッファ内ののクエリをまるごと実行するなら「C-c C-b」でOK.
おまけ
SQLを編集する際に自動でインデントしてくれたら楽だな、と思ったらsql-indentてのがあったので入れた。
M-x package-install ⏎ sql-indent
init.elに設定を追記
(eval-after-load "sql" '(load-library "sql-indent"))
あと、sql-set-productも自動でやってしまえば楽なのでその設定もinit.elに追記
(defun sql-mode-hooks() (sql-set-product "postgres")) (add-hook 'sql-mode-hook 'sql-mode-hooks)