Skip to content

ORM Configuration

Vona ORM is a core capability provided by the a-orm module. You can modify the module's configuration in App config:

src/backend/config/config/config.ts

typescript
// modules
config.modules = {
  'a-orm': {
    table: {
      identityType: 'string',
    },
    softDeletionPrune: {
      enable: true,
    },
  },
};
  • The complete configuration is as follows:

src/suite-vendor/a-vona/modules/a-orm/src/config/config.ts

typescript
export function config(_app: VonaApplication) {
  return {
    table: {
      identityType: 'string' as TableIdentityType,
    },
    model: {
      disableDeleted: false,
      disableInstance: false,
      disableCreateTime: false,
      disableUpdateTime: false,
    },
    softDeletionPrune: {
      enable: true,
      expired: 14 * 24 * 3600 * 1000,
    },
    dialects: {
      mysql: 'a-ormdialect.databaseDialect.mysql',
      mysql2: 'a-ormdialect.databaseDialect.mysql3',
      pg: 'a-ormdialect.databaseDialect.pg',
    } as unknown as TypeDataBaseConfigDialects,
    summer: {
      enable: true,
      meta: {} as IOnionOptionsMeta,
      presetDefault: 'redis' as TSummerCachePreset,
      preset: {
        redis: configRedis,
        redisWithIgnoreNull: configRedisWithIgnoreNull,
        all: configAll,
        allWithIgnoreNull: configAllWithIgnoreNull,
      },
      redis: {
        client: 'model',
      },
    },
  };
}
NameDescription
table.identityTypeType of the table key field id: string/number
modelGeneral settings for the model
softDeletionPruneSoft deletion data prune settings
dialectsSupported database dialects
summertwo-layer cache settings

Released under the MIT License.