docs/docs/cn/data-sources/data-source-manager/external-database.md
使用外部已有的数据库作为数据源,目前已支持的外部数据库有 MySQL、MariaDB、PostgreSQL、MSSQL、Oracle。
激活插件之后,才可以在数据源管理的 Add new 下拉菜单中选择并添加。
填写需要接入的数据库信息
外部数据库建立连接之后,会直接读取数据源里的所有数据表。外部数据库不支持直接添加数据表或修改表结构,如果需要修改,可以通过数据库客户端进行操作,再在界面上点击「刷新」按钮来同步。
外部数据库会自动读取已有数据表的字段,并展示出来。可以快速查看并配置字段的标题、数据类型(Field type)和 UI 类型(Field interface),也可以点击「编辑」按钮,修改更多配置。
因为外部数据库不支持修改表结构,所以新增字段时,可选的类型只有关系字段。关系字段并不是真实的字段,而是用于建立表和表之间的连接。
更多内容 数据表字段/概述 章节。
NocoBase 会自动为外部数据库的字段类型,映射相对应的数据类型(Field type)和 UI 类型(Field Interface)。
| PostgreSQL | MySQL/MariaDB | NocoBase Data Type | NocoBase Interface Type |
|---|---|---|---|
| BOOLEAN | BOOLEAN | ||
| TINYINT(1) | boolean | checkbox | |
| switch | |||
| SMALLINT | |||
| INTEGER | |||
| SERIAL | |||
| SMALLSERIAL | TINYINT | ||
| SMALLINT | |||
| MEDIUMINT | |||
| INTEGER | integer | ||
| boolean | |||
| sort | integer | ||
| sort | |||
| checkbox | |||
| switch | |||
| select | |||
| radioGroup | |||
| BIGINT | |||
| BIGSERIAL | BIGINT | bigInt | |
| sort | integer | ||
| sort | |||
| checkbox | |||
| switch | |||
| select | |||
| radioGroup | |||
| unixTimestamp | |||
| createdAt | |||
| updatedAt | |||
| REAL | FLOAT | float | number |
| percent | |||
| DOUBLE PRECISION | DOUBLE PRECISION | double | number |
| percent | |||
| DECIMAL | |||
| NUMERIC | DECIMAL | decimal | number |
| percent | |||
| currency | |||
| VARCHAR | |||
| CHAR | VARCHAR | ||
| CHAR | string | ||
| password | |||
| uuid | |||
| nanoid | input | ||
| phone | |||
| password | |||
| color | |||
| icon | |||
| select | |||
| radioGroup | |||
| uuid | |||
| nanoid | |||
| TEXT | TEXT | ||
| TINYTEXT | |||
| MEDIUMTEXT | |||
| LONGTEXT | text | ||
| json | textarea | ||
| markdown | |||
| vditor | |||
| richText | |||
| url | |||
| json | |||
| UUID | - | uuid | uuid |
| JSON | |||
| JSONB | JSON | json | json |
| TIMESTAMP | DATETIME | ||
| TIMESTAMP | date | date | |
| time | |||
| createdAt | |||
| updatedAt | |||
| DATE | DATE | dateOnly | datetime |
| TIME | TIME | time | time |
| - | YEAR | datetime | |
| CIRCEL | circle | json | |
| circle | |||
| PATH | |||
| GEOMETRY(LINESTRING) | LINESTRING | lineString | Json |
| lineString | |||
| POINT | |||
| GEOMETRY(POINT) | POINT | point | json |
| point | |||
| POLYGON | |||
| GEOMETRY(POLYGON) | POLYGON | polygon | json |
| polygon | |||
| GEOMETRY | GEOMETRY | - | - |
| BLOB | BLOB | blob | - |
| ENUM | ENUM | enum | select |
| radioGroup | |||
| ARRAY | - | array | multipleSelect |
| checkboxGroup | |||
| BIT | BIT | - | - |
| SET | SET | set | multipleSelect |
| checkboxGroup | |||
| RANGE | - | - | - |
不支持的字段类型会单独展示出来,这些字段需要开发适配之后才能使用。
作为区块展示的数据表必须配置了筛选目标键(Filter target key),筛选目标键指的是根据特定字段筛选数据,字段值必须具备唯一性。筛选目标键默认为数据表主键字段,如果是视图或者无主键数据表、联合主键的数据表,需要自定义筛选目标键。
设置了筛选目标键的数据表才可以在页面里添加