このページはCalíope 1.7を紹介しています。私がいま作っているバージョンです。1.6は、Mac、iPad、iPhone、Apple Watch、Apple TV、Apple Vision Pro向けにApp Storeで公開中です。それぞれの機能がどのバージョンで入ったかは変更履歴に書いてあります。

すべてのトピックに「Calíopeで開く」ボタンを追加します。アプリがインストールされている場合にのみ機能します。

クエリーログ

クエリーログを表示

実行したクエリーの完全な履歴を、所要時間と状態とともに表示します。

場所: ワークスペース › ツール › SQLログ

ワークスペースのナビゲーションバーから「SQLログ」を開きます。表示は2つあります:

- 「永続ログ」 — このセッションと以前のセッションで実行したすべてのクエリーです。ディスク上のファイルに保存され、番号、日付、接続、状態(OK/エラー)、クエリー、サーバの応答が記録されます。
- 「セッション履歴」 — このウインドウで実行したクエリーと、それぞれにかかった時間です。

行をダブルクリックすると(iPadではタップすると)、その詳細が表示されます。

RedisやMongoDBのセッションでは、このツールは「コマンドログ」という名前になり、実行したもの、つまりコンソールのコマンドと、MongoDBではクエリー、書き込み、インデックスも記録します。画面を表示するためにCalíopeがサーバに問い合わせる内容は記録されません。セッションの接続で絞り込まれた状態で開き、各行は届いたままの形で表示されます(SQLとして色分けはされず、パスワードは伏せ字になります)。そこにはSQLエディタがないので、セッション履歴もありません。Redisでは、「コンソールで開く」で行を実行せずにコンソールに送れます。CassandraまたはScyllaDBのセッションでも同じです。実行したCQL文(「CQLクエリー」、エクスプローラーでの編集、ロールが書き込むもの)が保存され、各行の応答の末尾には送信時の整合性レベルが付きます(OK (3 rows, 1.2 ms) · LOCAL_ONE)。そこでは「CQLクエリー」で開くで、行を実行せずに「CQLクエリー」に送れます。

Apple Vision Pro:iPadと同じです。行を見てピンチすると開きます。

キーワード: ログ、履歴、クエリー、クエリーログ、記録

セッションで絞り込む

特定のセッションのクエリーだけを表示します。

場所: SQLログ › セッションの選択

ログのツールバーにある「セッション」の選択で、セッションごとに絞り込みます。Calíopeは起動するたびに新しいセッションIDを生成し、終了するまでに実行したすべてのクエリーにそのIDが付きます。完全な履歴を見るには「すべてのセッション」を選び、特定のセッションだけを見るにはそれを選択します。

キーワード: セッション、フィルタ、ID、接続セッション

ログを検索

クエリーのテキストでログのエントリーを絞り込みます。

場所: SQLログ › 検索

ログのツールバーの検索フィールドに入力すると、そのテキストを含むクエリーだけが残ります。検索はセッション、接続、結果のフィルタと組み合わさり、すべてが同時に適用されます。

キーワード: 検索、フィルタ、テキスト、クエリー、探す

接続で絞り込む

特定の接続プロファイルのクエリーだけを表示します。

場所: SQLログ › 接続の選択

ログのツールバーにある2つ目の選択で、接続プロファイルごとにエントリーを絞り込みます。ドロップダウンからサーバまたはプロファイルの名前を選ぶと、そのコンテキストで実行したクエリーだけが表示されます。完全な履歴を見るには「すべての接続」を選択します。

各接続は「名前 (ホスト:ポート)」の形で表示されるので、同じマシン上の同じ名前の2つのプロファイル(たとえばMySQLとRedis)は別々に並びます。以前のバージョンのCalíopeが書き込んだエントリーにはポートのない「名前 (ホスト)」が付いていて、別の接続として並びます。

キーワード: 接続、フィルタ、プロファイル、サーバ、接続フィルタ

結果で絞り込む

成功したクエリーだけ、またはエラーになったクエリーだけを表示します。

場所: SQLログ › OK / エラーの選択

ログのツールバーにある3つ目の選択で、実行の状態ごとに絞り込みます:「すべて」、「OK」(成功したクエリーのみ)、「エラー」(失敗したクエリーのみ)。セッションのフィルタやテキスト検索と組み合わせると、関係のあるエントリーをすばやく絞り込めます。

キーワード: エラー、OK、状態、結果で絞り込む、成功、失敗

ログを手動で更新

ローカルの保存先からログのエントリーを読み直します。

場所: SQLログ › 更新ボタン

一覧は自動で最新の状態に保たれます。ログに記録されるクエリーは、このタブで実行したものもほかのタブから来たものも、iCloudから届いたものも、何もしなくても表示されます。ログのツールバーにある更新ボタン(円形の矢印のアイコン)を押すと、ファイルを手動で読み直します。

キーワード: 更新、再読み込み、最新の状態にする、ログ、手動

ログから結果をコピー

ログに記録されたクエリーの結果をクリップボードにコピーします。

場所: SQLログ › 右クリック › 結果をコピー

SQLログの任意のエントリーでコンテキストメニューを開き(macOSでは右クリック、iPadでは長押し)、「結果をコピー」を選択します。結果(応答のテキストまたはエラーメッセージ)が、クエリーを再実行しなくてもクリップボードにコピーされます。

Apple Vision Pro:コンテキストメニューは、行を見てピンチしたまま保持すると開きます。

キーワード: コピー、結果、クリップボード、ログ、コンテキストメニュー

永続ログを完全に消去

SQLiteのログからすべてのエントリーを完全に削除します。

場所: SQLログ › 完全に消去 / 消去

永続ログは、アプリケーションサポートディレクトリにあるローカルのSQLiteデータベース(query_log.db)に保存されます。すべてを削除するには、次の2つの方法のどちらかを使います:

- 上部のフィルタバーにある「消去」ボタン(ゴミ箱のアイコン)。
- 画面下部のファイル情報バーにある「完全に消去」ボタン。

どちらの場合も、Calíopeは削除の前に確認のダイアログを表示します。この操作はexecutedqueriesテーブルのすべての行を削除します。メモリー上のセッション履歴やDDLの監査ログには影響しません。

この操作は取り消せません。

キーワード: 消去、完全に消去、削除、取り除く、ログ、SQLite、全消去

ログファイルのパスとサイズ

query_log.dbファイルの場所と、使っている容量を確認します。

場所: SQLログ › ファイルバー(フッタ)

「永続ログ」の下部のバーには、常に次の情報が表示されます:

- query_log.dbファイルのフルパス(アプリケーションサポートディレクトリ)。
- サイズ(B、KB、MB、GBのうち適切な単位)。ログを読み直すたびに更新されます。

macOSでは — 「Finderに表示」をクリックすると、ファイルが選択された状態でFinderが開きます。そこから手動でバックアップを取ったり、ファイルを移動したりできます。

iPadでは — 「パスをコピー」をタップすると、パスがクリップボードにコピーされます。

macOSでの一般的なパスは次のとおりです:
~/Library/Containers/org.caliope.caliope/Data/Library/Application Support/Caliope/query_log.db

Apple Vision Pro:iPadと同じく、「パスをコピー」をピンチします。

キーワード: パス、サイズ、Finder、query_log.db、ファイル、場所、MB、GB

ログをiCloudと同期

クエリーの履歴を、iCloud経由でお使いのデバイス間で共有します。

場所: SQLログ › iCloud同期ボタン

SQLログの右上にある雲のアイコンで、iCloud CloudKitとの同期を操作します。この機能はデフォルトでは無効で、使うかどうかはまったくの任意です。

同期を有効にする

雲のアイコン(グレーの輪郭)をタップすると有効になります。Calíopeは次のように尋ねます:
- 「既存の履歴をアップロード」 — 現在のローカルのエントリーをすべてiCloudにアップロードします。
- 「新しいエントリーのみ」 — それまでの履歴はアップロードせず、今から同期を始めます。

それ以降、実行したクエリーはすべて、ローカルのデータベースとiCloudの両方に同時に保存されます。結果のフィールドは最大500文字で保存されます。

同期を無効にする

塗りつぶされた(青い)雲のアイコンをタップすると無効になります。Calíopeは次のように尋ねます:
- 「iCloudから履歴をダウンロード」 — iCloudのエントリーをすべて、使っているデバイスにダウンロードします。
- 「いいえ、無効にするだけ」 — ローカルのデータには触れずに同期を無効にします。
- 「オフにしてiCloudのコピーを削除」 — 同期をオフにし、iCloud上のコピーも、お使いのすべてのデバイスの分を削除します。各デバイスがローカルに持っているものはそのまま残ります。

最初の2つはiCloud上のコピーを残します。同期をオンにしているほかのデバイスは、引き続きそれを読み込みます。

状態の表示

アイコン意味
グレーの雲(輪郭)同期は無効
塗りつぶされた青い雲同期は有効で、最新の状態
読み込み中のインジケータ同期中
赤い斜線の入った雲同期エラー(ポインタを合わせると詳細が表示されます)

保持期間

ローカルのログに設定した保持期間(デフォルトは90日)が、1日に1回、iCloudのレコードにも自動で適用されます。これで、2つの保存先が同じ期間にそろいます。

プライバシー

データはあなた個人のiCloudアカウント(CloudKitのプライベートデータベース)に保存され、ほかのユーザからは見えず、Calíopeの手も届きません。私のサーバがそれを読むことはありません。オンにする前に、同期したログには機密情報(SQLに書いたパスワード、個人データや金融データ)が含まれる場合があると確認画面で警告します。同期がオンのあいだは、同じ警告が永続ログの上部に表示され続けます。

キーワード: iCloud、同期、同期する、CloudKit、クラウド、履歴、共有、iPad、Mac

iCloud同期のエラーを解決

雲のアイコンが赤で表示されたときの対処法です。

場所: SQLログ › 赤い雲のボタン

同期のアイコンが赤い斜線付きで表示されたら、タップするとエラーの詳細と、選べる操作が表示されます:

- 「再試行」 — もう一度同期を試みます。エラーが一時的なもの(ネットワークがない、iCloudが停止している)だった場合に使います。
- 「同期を無効にする」 — データをダウンロードせずに同期を無効にします。ローカルの履歴は変更されません。

よくある原因と解決方法:

エラー原因解決方法
「iCloudにサインインしていません」iCloudアカウントが有効になっていない「システム設定」→「Appleアカウント」を開く
「iCloudは一時的に利用できません」Appleのサーバが停止しているか、ネットワークにつながらない数分待ってから「再試行」をタップする
「アカウントの制限」ペアレンタルコントロールやMDMがCloudKitをブロックしているデバイスの管理者に問い合わせる
「状態を確認できませんでした」起動時にインターネットに接続していなかったネットワークを確認して「再試行」をタップする

注記:iCloudアカウントの状態は、アプリを開いたときに自動で確認されます。問題が解決すれば(たとえばインターネットに接続すれば)、次のクエリーを実行したあとにアイコンは青に戻ります。

キーワード: エラー、iCloud、同期、赤、再試行、利用できない、アカウント、トラブルシューティング

iCloud同期の失敗の通知

ログのiCloud同期が知らないうちに失敗したとき、Calíopeが通知を送ります。

場所: Calíope › 設定 › 一般 → 通知

クエリー履歴のiCloud同期が失敗した場合(接続がない、容量がいっぱい、アカウントが利用できない)、Calíopeはローカル通知で知らせることができます。知らないうちにレコードを失わないためです。

対象となる状況:
- 同期の時点でインターネットに接続していない。
- iCloudの容量を超えた — この場合、通知は容量がいっぱいであることを示す専用のメッセージになります。
- iCloudアカウントが一時的に利用できない。

有効にする・無効にする:
「設定」›「一般」›「通知」に移動し、「iCloud同期の失敗」のスイッチを使います。このスイッチは、「設定」でiCloud同期がオンのときだけ表示されます。

通知の間隔は、通知が多くなりすぎないよう15分です(同期は、クエリーを実行するたびに確認されます)。

キーワード: 通知、iCloud、同期、失敗、容量制限、オフライン、アラート

ログのエントリーをエディタに送る

行のメニューや詳細から、ボタン1つでSQL文を実行せずにSQLエディタに送ります。

場所: ワークスペース › ツール › SQLログ

行のメニューまたは詳細のシートから「エディタで開く」を選ぶと、SQL文を実行せずにSQLエディタに送ります。Macでは新しいタブで開きます。Mac以外では、エディタが前面に出て、それまでの内容の代わりにそのSQL文が入ります。セッション履歴も同じように動作します。

Redisでは、この項目は「コンソールで開く」になり、コマンドをコンソールに送ります。MongoDBでは表示されません。CassandraとScyllaDBでは「CQLクエリー」で開くで、文を「CQLクエリー」に送ります。

キーワード: エディタで開く、ログ、SQL文、履歴、コンソール

クエリーログをプリント

Macでは、永続ログを前面にして⌘Pを押すと、フィルタを通った行が、それぞれのSQL文全体とともにプリントされます。

場所: キーボードショートカット: ⌘P

Macでは、永続ログを前面にして⌘Pを押すと、フィルタを通った行がプリントされます。各行の番号、日付、接続、応答、そしてSQL文全体が、切り詰めずにプリントされます。セッション履歴はプリントされません。

ログのプリントはMacの機能です。

キーワード: プリント、印刷、ログ、フィルタ、SQL文