Database Eksternal

Pengenalan

Database eksternal digunakan untuk menghubungkan database bisnis yang sudah ada ke NocoBase, membaca tabel data, field, dan view dari database eksternal, sehingga tabel-tabel tersebut dapat digunakan di blok halaman, izin, workflow, dan API.

Berbeda dengan database utama, struktur tabel database eksternal dikelola oleh sistem asal atau klien database. NocoBase bertanggung jawab membaca struktur tabel dan view, dan tidak akan mengubah struktur tabel sebenarnya pada database eksternal.

Versi database dan edisi komersial yang didukung oleh database eksternal adalah sebagai berikut:

DatabaseVersi yang didukungEdisi KomunitasEdisi StandarEdisi ProfesionalEdisi Enterprise
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
Catatan

KingbaseES hanya mendukung mode kompatibilitas PostgreSQL, sedangkan OceanBase, ClickHouse, dan Doris hanya mendukung mode kompatibilitas MySQL.

Skenario penggunaan database eksternal:

  • Menghubungkan database sistem bisnis yang sudah ada (seperti ERP lama, MES, atau WMS), lalu memanfaatkan kemampuan NocoBase untuk membangun antarmuka manajemen, kontrol izin, workflow, dan laporan dengan cepat tanpa mengubah struktur tabel database asal.
  • Menambahkan kemampuan aplikasi ringan ke sistem yang sudah ada, seperti persetujuan, koreksi data, penanganan pengecualian, dan dasbor operasional, tanpa perlu mengganti sistem asal.
  • Melakukan kueri hanya-baca, analisis statistik, atau menampilkan BI dari database yang sudah ada untuk mengurangi ketergantungan pada halaman sistem bisnis asal.
  • Memigrasikan sistem lama secara bertahap: menghubungkan database lama ke NocoBase terlebih dahulu agar tetap dapat digunakan, lalu secara bertahap menyimpan data bisnis baru di database utama.
  • Struktur database tetap dikelola oleh DBA, skrip migrasi, atau sistem bisnis asal, sementara NocoBase hanya bertanggung jawab membaca struktur, mengonfigurasi antarmuka, dan menggunakan data.
Perhatian

Database eksternal bukan database sistem NocoBase. NocoBase tidak mengambil alih pencadangan, pemulihan, migrasi, atau struktur tabel database eksternal. Semua hal tersebut tetap harus dikelola di database eksternal.

Instalasi plugin

Database eksternal disediakan oleh plugin sumber data yang sesuai. Setelah plugin diinstal dan diaktifkan, jenis database yang sesuai dapat dipilih dari menu 「Add new」 di 「Manajemen sumber data」.

DatabasePlugin terkaitMetode instalasi
MySQL@nocobase/plugin-data-source-external-mysqlMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
PostgreSQL@nocobase/plugin-data-source-external-postgresMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
MariaDB@nocobase/plugin-data-source-external-mariadbMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
KingbaseES@nocobase/plugin-data-source-kingbaseMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
OceanBase@nocobase/plugin-data-source-oceanbaseMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
MSSQL@nocobase/plugin-data-source-external-mssqlMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
Oracle@nocobase/plugin-data-source-external-oracleMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
ClickHouse@nocobase/plugin-data-source-external-clickhouseMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.
Doris@nocobase/plugin-data-source-external-dorisMemerlukan lisensi komersial. Gunakan setelah plugin diinstal dan diaktifkan.

add_new_database

Jika jenis database yang dituju tidak ada di menu 「Add new」, biasanya perlu memastikan hal-hal berikut terlebih dahulu:

  • Apakah plugin terkait sudah diinstal
  • Apakah plugin sudah diaktifkan
  • Apakah lisensi komersial saat ini mencakup plugin tersebut
  • Apakah pengguna saat ini memiliki izin untuk mengelola sumber data

Panduan penggunaan

Menambahkan database eksternal

Setelah plugin diaktifkan, database dapat dipilih dan ditambahkan dari menu tarik-turun Add new di manajemen sumber data.

20240507204316

Isi informasi database yang ingin dihubungkan

20240507204820

Sinkronisasi tabel data

Setelah koneksi ke database eksternal dibuat, semua tabel data di sumber data akan langsung dibaca. Database eksternal tidak mendukung penambahan tabel data atau perubahan struktur tabel secara langsung. Jika perlu melakukan perubahan, gunakan klien database, lalu klik tombol 「Refresh」 di antarmuka untuk menyinkronkannya.

20240507204725

Konfigurasi field

Database eksternal akan secara otomatis membaca field dari tabel data yang sudah ada dan menampilkannya. Anda dapat dengan cepat melihat dan mengonfigurasi judul field, tipe data (Field type), dan tipe UI (Field interface), atau mengeklik tombol 「Edit」 untuk mengubah konfigurasi lainnya.

20240507210537

Karena database eksternal tidak mendukung perubahan struktur tabel, saat menambahkan field, hanya tipe yang tersedia adalah field relasi. Field relasi bukanlah field sebenarnya, melainkan digunakan untuk membuat hubungan antara tabel.

20240507220140

Lihat bab Field tabel data / Ikhtisar untuk informasi selengkapnya.

Pemetaan tipe field

NocoBase akan secara otomatis memetakan tipe field database eksternal ke tipe data (Field type) dan tipe UI (Field Interface) yang sesuai.

  • Tipe data (Field type): digunakan untuk menentukan jenis, format, dan struktur data yang dapat disimpan oleh field;
  • Tipe UI (Field interface): mengacu pada tipe kontrol yang digunakan untuk menampilkan dan memasukkan nilai field di antarmuka pengguna.
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---

Tipe field yang tidak didukung

Tipe field yang tidak didukung akan ditampilkan secara terpisah. Field tersebut baru dapat digunakan setelah dilakukan penyesuaian oleh pengembang.

20240507221854

Identifikasi unik record

Tabel data yang digunakan untuk ditampilkan sebagai blok harus memiliki 「identifikasi unik record」(Record unique key). Identifikasi unik record digunakan untuk menemukan satu record di blok halaman, biasanya berupa primary key atau field unik.

Untuk view, tabel tanpa primary key, atau tabel dengan primary key gabungan, 「Record unique key」 harus diatur secara manual dalam konfigurasi tabel data. Jika tidak ada identifikasi unik yang tersedia, blok halaman mungkin tidak dapat dibuat dengan benar, atau record tidak dapat dilihat maupun diedit. Penjelasan selengkapnya dapat dilihat di Database utama / Mengedit tabel data.

edit_collection

edit_collection_configure