外部データベース
概要
外部データベースを使用すると、既存の業務データベースを 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」を手動で設定する必要があります。使用可能な一意識別子がない場合、ページブロックを正しく作成したり、レコードを表示・編集したりできないことがあります。詳しくは通常のテーブル / 設定の編集を参照してください。



