外部データベース

概要

外部データベースを使用すると、既存の業務データベースを NocoBase に接続し、外部データベース内のデータテーブル、フィールド、ビューを読み込んで、ページブロック、権限、ワークフロー、API で利用できるようになります。

メインデータベースとは異なり、外部データベースのテーブル構造は元のシステムやデータベースクライアントによって管理されます。NocoBase はテーブル構造とビューの読み取りのみを行い、外部データベースの実際のテーブル構造を変更しません。

外部データベースがサポートするデータベースのバージョンとエディションは以下のとおりです。

データベースサポートバージョンコミュニティ版スタンダード版プロフェッショナル版エンタープライズ版
MySQL>= 5.7
PostgreSQL>= 9.5
MariaDB>= 10.3
MSSQL2014-2019
KingbaseES>=V9
OceanBase>=4.3
Oracle>= 11g
ClickHouse>= 20.2
Doris>= 2.1.0
ヒント

KingbaseES は PostgreSQL 互換モードのみ、OceanBase、ClickHouse、Doris は MySQL 互換モードのみをサポートします。

外部データベースの利用シーン:

  • 既存の業務システム(旧 ERP、MES、WMS など)のデータベースに接続し、元のデータベースのテーブル構造を変更することなく、NocoBase の機能を活用して管理画面、権限制御、ワークフロー、レポートを迅速に構築する。
  • 既存システムを置き換えることなく、承認、データ修正、異常処理、運用ダッシュボードなどの軽量なアプリケーション機能を追加する。
  • 既存データベースに対して読み取り専用の検索、統計分析、BI 表示を行い、元の業務システムの画面への依存を減らす。
  • 既存システムを段階的に移行する。まず NocoBase に旧データベースを接続して使い続け、続いて新しい業務データをメインデータベースで管理する。
  • データベース構造は DBA、移行スクリプト、または元の業務システムが引き続き管理し、NocoBase は構造の読み取り、画面の設定、データの利用のみを担当する。
注意

外部データベースは NocoBase のシステムデータベースではありません。NocoBase は外部データベースのバックアップ、復元、移行、テーブル構造を管理しません。これらは引き続き外部データベース側で管理する必要があります。

プラグインのインストール

外部データベースは、対応するデータソースプラグインによって提供されます。プラグインをインストールして有効化すると、「データソース管理」の「Add new」メニューから対応するデータベースタイプを選択できるようになります。

データベース対応プラグインインストール方法
MySQL@nocobase/plugin-data-source-external-mysql商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
PostgreSQL@nocobase/plugin-data-source-external-postgres商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
MariaDB@nocobase/plugin-data-source-external-mariadb商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
KingbaseES@nocobase/plugin-data-source-kingbase商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
OceanBase@nocobase/plugin-data-source-oceanbase商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
MSSQL@nocobase/plugin-data-source-external-mssql商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
Oracle@nocobase/plugin-data-source-external-oracle商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
ClickHouse@nocobase/plugin-data-source-external-clickhouse商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。
Doris@nocobase/plugin-data-source-external-doris商用ライセンスが必要です。プラグインをインストールして有効化してから使用してください。

add_new_database

「Add new」メニューに対象のデータベースタイプが表示されない場合は、通常、以下を確認してください。

  • 対応するプラグインがインストールされているか
  • プラグインが有効化されているか
  • 現在の商用ライセンスにそのプラグインが含まれているか
  • 現在のユーザーにデータソース管理権限があるか

使用方法

外部データベースの追加

プラグインを有効化すると、データソース管理の「Add new」ドロップダウンメニューから選択して追加できるようになります。

20240507204316

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

20240507204820

データテーブルの同期

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

20240507204725

フィールドの設定

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

20240507210537

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

20240507220140

詳しくは、データテーブルのフィールド / 概要の章を参照してください。

フィールドタイプのマッピング

NocoBase は、外部データベースのフィールドタイプを、対応するデータ型(Field type)と UI タイプ(Field Interface)に自動的にマッピングします。

  • データ型(Field type):フィールドに格納できるデータの種類、形式、構造を定義するために使用します。
  • UI タイプ(Field interface):ユーザーインターフェース上でフィールド値の表示や入力に使用するコントロールのタイプです。
PostgreSQLMySQL/MariaDBNocoBase Data TypeNocoBase Interface Type
BOOLEANBOOLEAN
TINYINT(1)
booleancheckbox
switch
SMALLINT
INTEGER
SERIAL
SMALLSERIAL
TINYINT
SMALLINT
MEDIUMINT
INTEGER
integer
boolean
sort
integer
sort
checkbox
switch
select
radioGroup
BIGINT
BIGSERIAL
BIGINTbigInt
sort
integer
sort
checkbox
switch
select
radioGroup
unixTimestamp
createdAt
updatedAt
REALFLOATfloatnumber
percent
DOUBLE PRECISIONDOUBLE PRECISIONdoublenumber
percent
DECIMAL
NUMERIC
DECIMALdecimalnumber
percent
currency
VARCHAR
CHAR
VARCHAR
CHAR
string
password
uuid
nanoid
input
email
phone
password
color
icon
select
radioGroup
uuid
nanoid
TEXTTEXT
TINYTEXT
MEDIUMTEXT
LONGTEXT
text
json
textarea
markdown
vditor
richText
url
json
UUID-uuiduuid
JSON
JSONB
JSONjsonjson
TIMESTAMPDATETIME
TIMESTAMP
datedate
time
createdAt
updatedAt
DATEDATEdateOnlydatetime
TIMETIMEtimetime
-YEARdatetime
CIRCELcirclejson
circle
PATH
GEOMETRY(LINESTRING)
LINESTRINGlineStringJson
lineString
POINT
GEOMETRY(POINT)
POINTpointjson
point
POLYGON
GEOMETRY(POLYGON)
POLYGONpolygonjson
polygon
GEOMETRYGEOMETRY--
BLOBBLOBblob-
ARRAY-arraymultipleSelect
checkboxGroup
BITBIT--
SETSETsetmultipleSelect
checkboxGroup
RANGE---

サポートされていないフィールドタイプ

サポートされていないフィールドタイプは個別に表示されます。これらのフィールドを使用するには、開発による対応が必要です。

20240507221854

レコードの一意識別子

ブロックで表示するデータテーブルには、「レコードの一意識別子」(Record unique key)が必要です。レコードの一意識別子は、ページブロック内でレコードを特定するために使用され、通常は主キーまたは一意フィールドを選択します。

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

edit_collection

edit_collection_configure