Communityライティング&編集github.com

tablestudioapp/plugins

Mac上でTableStudioを通じてローカル開発データベースをセットアップ・管理します。プロジェクトでローカルのPostgres、MySQL、ClickHouse、SQLiteデータベースやDATABASE_URLが必要な場合、ローカルデータベースが接続を拒否したり停止している場合(ECONNREFUSED、「接続が拒否されました」、「サーバーに接続できませんでした」、「MySQLサーバーに接続できません」)、ユーザーがスクラッチやテスト用データベース、実験用の安全なコピーを必要とする場合、またはPostgreSQL拡張機能(pgvector、PostGIS、pg_trgm)をインストールする必要がある場合に使用します。

plugins とは?

このスキルは、Mac上でローカルデータベースサーバーを管理するためのTableStudioプラグインです。HomebrewやPostgres.appから引き継いだデータベースも扱え、接続拒否エラーが発生した際の診断やサーバーの起動、新しいデータベースの作成、既存データベースへの接続文字列の提供、実験用のサンドボックス作成、PostgreSQL拡張機能のインストールをサポートします。主なツールとして、`connection_status`(全接続の状態確認)、`start_local_database`(サーバー起動)、`create_local_database`(新規DB作成)、`get_connection_url`(接続文字列取得)、`create_sandbox`(安全なコピー作成)、`list_extensions`/`add_extension`(拡張機能管理)を提供します。SQLiteはインストール不要で即座に利用可能ですが、Postgres、MySQL、ClickHouseは対応するサーバーバイナリがMacに既にインストールされている必要があります。作成したデータベースは`env_line`(`DATABASE_URL=...`)として.envファイルに追記し、プロジェクトのマイグレーションを実行します。パスワードや接続文字列をチャットに表示したり、コードやコミットに書き込むことは禁止されています。また、本番データベースやパスワード保護された接続は共有されず、サンドボックスはスキーマのみ、サンプルデータ、またはフェイクデータで作成でき、ユーザーがワンクリックで破棄できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tablestudioapp/plugins/tree/HEAD/tablestudio/skills/local-databases

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

TableStudio によるローカルデータベース

TableStudioはこのMac上のデータベースサーバーを管理します。HomebrewやPostgres.appから引き継いだものも含まれます。手動のDockerコマンドやinitdbよりも、そのツールを使用することを推奨します。結果がユーザーのアプリに保存された接続として表示されるためです。

ローカルデータベースでの「接続が拒否されました」

  1. connection_status(引数なしですべての接続を報告します)。クエリを実行しないため、データベースがダウンしている間も動作し、接続がローカルサーバーでバックアップされているかどうか、およびそのサーバーが実行中かどうかを通知します。
  2. サーバーが停止している場合は、返されたinstance_idを指定してstart_local_databaseを呼び出します。サーバーが既に実行中の場合でも安全に呼び出すことができます。
  3. ポートが他の何かによって使用されている場合、エラーはその占有者を指定します。プロセスを強制終了するのではなく、ユーザーに通知してください。

list_local_databasesはローカルのすべて(管理対象サーバー、引き継いだもの、SQLiteファイル、およびTableStudioが管理していないがポートを保持しているサーバー)を表示します。2つのIDに注意してください。instance_idはサーバー(起動と停止に使用)、connection_idはクエリを実行するデータベースです。これらは互換性がありません。

新しいデータベース

create_local_databaseにnameとengineを指定します。

  • sqliteはインストール不要で即座に利用できます。ユーザーが単にデータを保存したい場所を必要とする場合に推奨します。
  • postgres、mysql、clickhouseは、そのエンジンのサーバーバイナリがMacに既にインストールされている必要があります。TableStudioはバイナリをバンドルしておらず、不足している場合はツールがそのように通知します。ソフトウェアを依頼なくインストールするのではなく、インストールのヒントをユーザーに伝えてください。

TableStudio のツールを介してクエリを実行できるconnection_idと、プロジェクト用のenv_line(DATABASE_URL=...)を返します。その後:

  1. 使用するenvファイル(.env、.env.local)が.gitignoreでカバーされていることを確認します。カバーされていない場合は、最初にそこに追加します。
  2. そのファイルにenv_lineを配置し、プロジェクトが既に読み取る変数名(DATABASE_URL、または設定で期待されるもの)を使用します。
  3. それに対してプロジェクトのマイグレーション(およびシードがあればそれ)を実行します。

接続文字列をチャットで繰り返したり、コード、ドキュメント、またはコミットに書き込まないでください。

ユーザーが要求しない限り、stop_local_databaseをクリーンアップやポート解放のために呼び出さないでください。そのサーバーを使用するすべてのもの(ユーザー自身のウィンドウを含む)を切断します。

既存のローカルデータベースの接続文字列

プロジェクトがTableStudioが既に認識しているローカルデータベースにアクセスする必要がある場合(不足している.envを埋めるため、またはテストをサンドボックスに向けるため)、get_connection_urlをそのconnection_idとともに呼び出し、env_lineを上記のように使用します。

  • TableStudioが作成したデータベース、サンドボックス、およびパスワードのないローカルデータベースは常に利用可能です。
  • ユーザーが自分のパスワードで保存したローカル接続は、許可された場合にのみ共有されます。それ以外の場合、拒否は設定を指定します。それを伝えるか、ユーザーに自分でenvファイルに値を貼り付けてもらいます。チャットでパスワードを決して要求しないでください。
  • リモートデータベース、SSHトンネル、および本番とタグ付けされたものは決して共有されません。これらにはTableStudioのツールを使用してください。

実験用の安全なコピー

create_sandboxは、任意の接続の使い捨てローカルコピーを作成します(ソースは読み取り専用です)。

  • data: "none":スキーマのみをコピーします。DDLを試すのに最適です。
  • data: "sample":テーブルごとに最大rows行をコピーします。実際の行に対してデータ修正を確認するのに最適です。
  • data: "fake":行を生成します。

サンドボックスのconnection_idに対して任意の操作を実行できます。ユーザーはワンクリックで破棄できます。削除はできません。list_sandboxesを使用して、以前作成したサンドボックスを再利用します。

PostgreSQL 拡張機能

list_extensionsは、サーバーがインストールできる拡張機能と既にインストールされているものを表示します。add_extensionは1つインストールします(CREATE EXTENSION IF NOT EXISTS)。スキーマ変更として扱ってください。共有データベースまたは本番データベースでは、実行する前に提案してください。また、リポジトリにマイグレーションツールがある場合は、他の環境でも取得できるようにそこに追加してください。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル