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, tetapi tidak akan mengubah struktur tabel sebenarnya di 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
ClickHouseMengacu pada dokumentasi plugin terkait
DorisMengacu pada dokumentasi plugin terkait
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, perbaikan data, penanganan anomali, 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 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, sedangkan NocoBase hanya bertanggung jawab membaca struktur, mengonfigurasi antarmuka, dan menggunakan data.
Perhatian

Database eksternal bukanlah 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 dipasang dan diaktifkan, jenis database yang sesuai dapat dipilih dari menu 「Add new」 di 「Manajemen sumber data」.

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

add_new_database

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

  • Apakah plugin terkait sudah dipasang
  • 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 「Segarkan」 di antarmuka untuk menyinkronkannya.

20240507204725

Mengonfigurasi field

Database eksternal akan otomatis membaca field dari tabel data yang sudah ada dan menampilkannya. Anda dapat dengan cepat melihat dan mengonfigurasi judul field, tipe data (Field type), serta 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 field relasi yang dapat dipilih. Field relasi bukanlah field sebenarnya, melainkan digunakan untuk membuat hubungan antara tabel.

20240507220140

Untuk informasi lebih lanjut, lihat bab Field tabel data / Ikhtisar.

Pemetaan tipe field

NocoBase akan 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): merujuk 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

Identitas unik record

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

Untuk view, tabel tanpa kunci utama, atau tabel dengan kunci utama gabungan, 「Record unique key」 perlu diatur secara manual dalam konfigurasi tabel data. Jika tidak ada identitas unik yang tersedia, blok halaman mungkin tidak dapat dibuat, atau record tidak dapat dilihat maupun diedit dengan benar. Untuk penjelasan lebih lanjut, lihat Tabel biasa / Edit konfigurasi.

edit_collection

edit_collection_configure