被雨水过滤的空气-Rain b22207b180
feat: support JSONB (#2321)
* 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
2023-07-30 09:51:39 +08:00

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';
}