Sequel ProでのSQL崩し | My Footprint

My Footprint

どんな靴を履いてても、歩けば僕の足跡。
目標に向かって歩き続ける日々を書いていくブログです。

いやはや、前の投稿日を見ると自分がいかに無精な人間かがわかってしまう。。。

だいぶ久しぶりのブログ投稿ですが、最近Web開発の案件を担当しているので
今日はちょっとWeb関係のツールのお話。

うちは基本Macで開発なんですがなかなかMacだと使いやすいDBクライアントが少なく
MySQLワークベンチは何となく肌にあいませんでした(笑)

そんななかSequel Proというフリーで使えるツールを見つけ、これがなかなか
使い勝手が個人的によかったのでしばしば使っていました。


で、上にも書いた通り最近またwebをやり始めてこのツールを使い始めたんですが
以前から一点不満な点がありました。

それはSQLの整形ができないこと。
俗にいうSQL崩し、これが出来ないのは個人的に結構痛い。

横に長いSQLなんて読みたくない!
インデントの崩れたSQLなんて汚くてラフランス!※


ということでずっとこちらのサービスを使わせて頂いていました。(本当にお世話になってますm(_ _)m)


しかしながら、今更になってメニューのバンドル→入力フィールド→Format→Format SQLなんてものを発見。ワロス。

まぁ普通に考えてないわけないかーと思いながらさっそくポチッ!





(;´д`)ェェエエ工

いきなりこんなこと言われるとやりたくなくなるわけですよ。
で、どうしよーかなーと思っているとバンドルのところにエディタの項目が・・・

もしかしてこれバンドル自作できる?と思い開いてみるとビンゴ!
調べてみると自分で書いたコマンドを一時ファイルとして実行するらしく
rubyやらphpやらでかけるっぽい。
しかも調べたらなんかphpのライブラリ発見!


これは使わない手はない!!

ということでまずgitからsql-formatterをゲット。
任意のディレクトリに展開したら以下のようなphpをバンドルに設定。
※適宜パスは書き換えてください


#!/path/to/php
<?php
require_once '/path/to/SqlFormatter.php';

$sql = '';
while (($line = fgets(STDIN))) {
$line = str_replace(array("\r\n","\r","\n"), ' ', $line);
$sql .= $line;
}

echo SqlFormatter::format($sql, false);



これをFormatのカテゴリの当たりに登録してやると
バンドル→入力データ→Format→登録したバンドルが追加されます。

あとはそれを選択すると・・・








キタ━━━━━━(゚∀゚)━━━━━━ !!!!!


整形…

圧倒的整形…

ということでオフラインでも安全にSQL崩しが出来るようになりました。
何故かショートカットキーの割当がうまく出来ませんでしたが、それは後日調べましょう。

とりあえず、一番の不満だったところが解消されこれからもがんがん使い倒せるツールになりました!

これでかつる!!

※ : 私の地元ではラフランスは形が悪いことから”見たくない"→"見たく梨"という隠語があります。