環境
MacOS
Rails 6.1.3
SQLite version 3.28.0
Problem
railsを使っていてDBの中身を見たくなったり、SQLを流したいことは多々あります。
そんなとき使うのが「rails db(console)」コマンドですね。でもこれ、とっても見づらくありませんか?
sqlite> SELECT * FROM relationships LIMIT 1;
1|3|1|2021-03-04 08:19:13.390480|2021-03-04 08:19:13.390480
改行文字が含まれていればそのまま改行されて見えますし、ヘッダもありません。
SQLiteに慣れていないのもありますが、やはりこれでは可読性が高いとは言えません。
なんとかSQLiteのオプションで見やすくならないかと試行錯誤してみました。
Try
-- ヘッダを表示
sqlite> .headers ON
sqlite> SELECT * FROM relationships LIMIT 1;
id|user_id|follower_id|created_at|updated_at
1|3|1|2021-03-04 08:19:13.390480|2021-03-04 08:19:13.390480
-- カラム毎に左揃えで表示
sqlite> .mode column
sqlite> SELECT * FROM relationships LIMIT 1;
id user_id follower_id created_at updated_at
---------- ---------- ----------- -------------------------- --------------------------
1 3 1 2021-03-04 08:19:13.390480 2021-03-04 08:19:13.390480
-- カラム毎に改行して表示
sqlite> .mode line
sqlite> SELECT * FROM relationships LIMIT 1;
id = 1
user_id = 3
follower_id = 1
created_at = 2021-03-04 08:19:13.390480
updated_at = 2021-03-04 08:19:13.390480
だいぶ見やすくなりましたが、大量にデータを取得したいときや、カラムの数が多い場合上記の方法でもツライところがあります。
Solve
データベースを可視化するクライアントツールを使いました。
https://tableplus.com
設定は至って簡単です。
画面左下の「Create a new connection...」をクリックして「SQLite」を選択します。
「Select file...」をクリックするとFinderが開くのでお使いのrailsプロジェクトに移動し、「db/development.sqlite3」を選択します。あとは「Connect」を押下で完了です。
登録・更新・検索すべてがGUIで操作可能になりました。
とっても見やすいUIですね!もちろん生のSQLも流せるので便利です。ハイライトが地味に嬉しいポイント。
Summary
筆者の語彙力が乏しく「rails db 見づらい」「rails db 見やすく」とか検索してもヒットしなかったので記事を書いてみました。
余談ですが正式には「rails dbconsole」というのですね。短縮形で覚えると検索が大変ですね。
どなたかの助けになれば幸いです。