外部データベース
概要
外部データベースを使用すると、既存の業務データベースを NocoBase に接続し、外部データベース内のデータテーブル、フィールド、ビューを読み込んで、ページブロック、権限、ワークフロー、API で利用できるようになります。
メインデータベースとは異なり、外部データベースのテーブル構造は元のシステムやデータベースクライアントによって管理されます。NocoBase はテーブル構造とビューの読み取りのみを行い、外部データベースの実際のテーブル構造を変更しません。
外部データベースがサポートするデータベースのバージョンとエディションは以下のとおりです。
KingbaseES は PostgreSQL 互換モードのみ、OceanBase、ClickHouse、Doris は MySQL 互換モードのみをサポートします。
外部データベースの利用シーン:
- 既存の業務システム(旧 ERP、MES、WMS など)のデータベースに接続し、元のデータベースのテーブル構造を変更することなく、NocoBase の機能を活用して管理画面、権限制御、ワークフロー、レポートを迅速に構築する。
- 既存システムを置き換えることなく、承認、データ修正、異常処理、運用ダッシュボードなどの軽量なアプリケーション機能を追加する。
- 既存データベースに対して読み取り専用の検索、統計分析、BI 表示を行い、元の業務システムの画面への依存を減らす。
- 既存システムを段階的に移行する。まず NocoBase に旧データベ ースを接続して使い続け、続いて新しい業務データをメインデータベースで管理する。
- データベース構造は DBA、移行スクリプト、または元の業務システムが引き続き管理し、NocoBase は構造の読み取り、画面の設定、データの利用のみを担当する。
外部データベースは NocoBase のシステムデータベースではありません。NocoBase は外部データベースのバックアップ、復元、移行、テーブル構造を管理しません。これらは引き続き外部データベース側で管理する必要があります。
プラグインのインストール
外部データベースは、対応するデータソースプラグインによって提供されます。プラグインをインストールして有効化すると、「データソース管理」の「Add new」メニューから対応するデータベースタイプを選択できるようになります。

「Add new」メニューに対象のデータベースタイプが表示されない場合は、通常、以下を確認してください。
- 対応するプラグインがインストールされているか
- プラグインが有効化されているか
- 現在の商用ライセンスにそのプラグインが 含まれているか
- 現在のユーザーにデータソース管理権限があるか
使用方法
外部データベースの追加
プラグインを有効化すると、データソース管理の「Add new」ドロップダウンメニューから選択して追加できるようになります。

接続するデータベースの情報を入力します。

データテーブルの同期
外部データベースへの接続を確立すると、データソース内のすべてのデータテーブルが直接読み込まれます。外部データベースでは、データテーブルの直接追加やテーブル構造の変更はサポートされていません。変更が必要な場合は、データベースクライアントで操作した後、画面上の「更新」ボタンをクリックして同期してください。

フィールドの設定
外部データベースは既存のデータテーブルのフィールドを自動的に読み取り、表示します。フィールドのタイトル、データ型(Field type)、UI タイプ(Field interface) をすばやく確認・設定できるほか、「編集」ボタンをクリックして、さらに詳細な設定を変更することもできます。

外部データベースではテーブル構造を変更できないため、フィールドを追加する際に選択できるタイプはリレーションフィールドのみです。リレーションフィールドは実際のフィールドではなく、テーブル間の接続を構築するために使用されます。

詳しくは、データテーブルのフィールド / 概要の章を参照してください。
フィールドタイプのマッピング
NocoBase は、外部データベースのフィールドタイプを、対応するデータ型(Field type)と UI タイプ(Field Interface)に自動的にマッピングします。
- データ型(Field type):フィールドに格納できるデータの種類、形式、構造を定義するために使用します。
- UI タイプ(Field interface):ユーザーインターフェース上でフィールド値の表示や入力に使用するコントロールのタイプです。
サポートされていないフィールドタイプ
サポートされていないフィールドタイプは個別に表示されます。これらのフィールドを使用するには、開発による対応が必要です。

レコードの一意識別子
ブロックで表示するデータテーブルには、「レコードの一意識別子」(Record unique key)が必要です。レコードの一意識別子は、ページブロック内でレコードを特定するために使用され、通常は主キーまたは一意フィールドを選択します。
ビュー、主キーのないテーブル、または複合主キーのテーブルの場合は、データテーブルの設定で「Record unique key」を手動で設定する必要があります。利用可能な一意識別子がない場合、ページブロックを正しく作成したり、レコードを表示・編集したりできないことがあります。詳しくは、メインデータベース / データテーブルの編集を参照してください。



