mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 13:39:24 +08:00
* chore: yarn.lock * feat: add jsonb option in field drawer * feat: only postgres can use JSONB * chore: add test * refactor: make better * fix: fix build * fix: fix build * fix: should disable JSONB on editing field
32 lines
772 B
TypeScript
32 lines
772 B
TypeScript
import { DataTypes } from 'sequelize';
|
|
import { BaseColumnFieldOptions, Field } from './field';
|
|
|
|
export class JsonField extends Field {
|
|
get dataType() {
|
|
const dialect = this.context.database.sequelize.getDialect();
|
|
const { jsonb } = this.options;
|
|
if (dialect === 'postgres' && jsonb) {
|
|
return DataTypes.JSONB;
|
|
}
|
|
return DataTypes.JSON;
|
|
}
|
|
}
|
|
|
|
export interface JsonFieldOptions extends BaseColumnFieldOptions {
|
|
type: 'json';
|
|
}
|
|
|
|
export class JsonbField extends Field {
|
|
get dataType() {
|
|
const dialect = this.context.database.sequelize.getDialect();
|
|
if (dialect === 'postgres') {
|
|
return DataTypes.JSONB;
|
|
}
|
|
return DataTypes.JSON;
|
|
}
|
|
}
|
|
|
|
export interface JsonbFieldOptions extends BaseColumnFieldOptions {
|
|
type: 'jsonb';
|
|
}
|