クロスデータベースクエリ
データベースツールおよび SQL プラグインを有効化する
この機能は、RubyMine にデフォルトでバンドルされ有効化されている データベースツールおよび SQL プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
データベースツールおよび SQL プラグインを見つけて、 有効化 をクリックします。
RubyMine では、事前にデータをコピーしなくても、異なるデータベース間でデータをクエリし、結果を直接表示できます。 IDE は、RubyMine とクエリ対象のデータベースの仲介役として機能する専用の ワークスペース データソースを提供します。 その クエリコンソールs を使用して、 Ctrl+Space コード補完と 特殊な構文で SQL クエリを作成して実行します。
ワークスペースデータソース
ワークスペース データソースは DuckDB を基盤としており、デフォルトでインメモリ DuckDB データベースを作成します。 各プロジェクトには単一の ワークスペース データソースを設定でき、必要な数の クエリコンソールs を使用できます。

ワークスペースデータソースを作成する
データベース ツールウィンドウのツールバーで、
追加 をクリックし、
ワークスペースのデータソース を選択します。
RubyMine はデータソースを データベース ツールウィンドウのリストに追加し、そのデフォルトの クエリコンソール を自動的に開きます。

構文
ワークスペース データソースの クエリコンソール では、次の構文を使用して他のデータソースのテーブルを参照できます:
テーブルを直接参照するには、そのデータソースとテーブル名を指定します。 必要に応じてデータベースとスキーマを追加します:
#data_source[.database.schema].tableテーブルをフィルターするには、参照に
#filter(...)を追加します:#data_source[.database.schema].table.#filter('condition')#query(...)を使用してデータソースに対してクエリを実行することもできます:#data_source[.database.schema].#query('query')
#filter(...) と #query(...) では、一重引用符の代わりに $$...$$ ドル引用符付き文字列を使用できます: #filter($$condition$$) と #query($$query$$)。
コード補完を使用してデータソースを選択するには、 # と入力します。

サンプル例
PostgreSQL と MySQL データソースおよびそれぞれの Sakila データベースで使用する構文の例をいくつか示します:
参照先テーブルの行をフィルター:
SELECT * FROM #PostgreSQL.guest.public.customer.#filter('customer_id > 100');
参照先データソースに対してクエリを実行:
SELECT * FROM #PostgreSQL.guest.public.#query($$ SELECT customer_id, amount FROM payment WHERE amount > 5 $$);
PostgreSQL と MySQL データソースのデータを結合:
SELECT c.first_name, c.last_name, p.amount FROM #PostgreSQL.guest.public.customer c JOIN #MySQL.sakila.payment p ON c.customer_id = p.customer_id;