Перейти до основного вмісту

Схема TypeORM

інформація

Документ "Репозиторій MongoDB" слугує мостом взаємодії між колекцією бази даних MongoDB та бізнес-логікою, що сприяє підвищенню читабельності та розширюваності коду. Він є інструментом для взаємодії з колекціями даних, забезпечуючи можливість виконання різноманітних запитів до них.

інформація

Документ "Схема TypeORM" відповідає за опис структури таблиці SQL бази даних. Для роботи з SQL базами даних X-Fiber використовує TypeORM. TypeORM - це бібліотека для роботи з базами даних у TypeScript, яка надає ORM (Object-Relational Mapping) для спрощення взаємодії з базами даних. При створенні схеми TypeORM є можливість описати структуру таблиці, звʼязки з іншими таблицями, додаткові перевірки тощо.

Детальніше про опис створення схеми бази данних дивись Опис схеми TypeORM

Архітектура

При потребі створення таблиць в SQL бази даних необхідно створити документ "Схема TypeORM" з описом необхідної структури таблиці.

Документ "Схема TypeORM" повинен бути зареєстрований в документі "Реєстр" предметної області, яка в свою чергу, повинна бути зареєстрована в відповідному сервісі, включеному до бізнес-схеми. Це гарантує, що при запуску ядра обчислень буде завантажений опис схеми TypeORM. При запуску програми веб-сервера, ядро обчислень завантажить бізнес-схему в сервіс бізнес-схеми. На етапі запуску зʼєднувача з TypeORM, зʼєднувач отримає від сервіса бізнес-схеми повний перелік документів, з якими здійснить необхідні маніпуляції в тому числі і створення таблиць в базі даних TypeORM.

typeorm-schema-arch.svg

warning

Для успішного використання TypeORM необхідно включити роботу з TypeORM в конфігураційному файлі, та, за потреби додати опції конфігурації роботи зʼєднувача з TypeORM базою даних.

порада

Схема може містити як властивості таблиці, так і хуки та тригери, рекомендується описувати хуки та тригери безпосередньо поряд зі схемою TypeORM

Склад

небезпека

Опис складу документа "Схема TypeORM" знаходиться в активній розробці.

Аргумент агентів функціональності

Аргумент агентів функціональності являє собою обʼєкт з переліком агентів:

type IBaseAgent = {
// agent functionality description
}

export type Agents = {
baseAgent: IBaseAgent;
};

де:

  • baseAgent - агент з переліком просторів імен функціональності, які надають функціональні компоненти ядра обчислень.
warning

Агент базових операцій знаходиться в активній розробці та надалі, буде надавати функціонал базового опису cхеми TypeORM, до прикладу опис структури часових відміток - createAt, updateAt тощо.

Реалізація

небезпека

Опис реалізації опису схеми TyopeORM бази даних знаходиться в активній розробці.

Реєстрація

Щоб успішно використовувати cхему TypeORM для впровадження змін в структурі бази даних TypeORM документ "Cхема TypeORM" повинен бути зареєстрований в документі "Реєстр" цієї предметної області. Наприклад для предметної області - агрегат "Користувачі", необхідно в опис документів функції setRegistry для встановлення посилання на схему TypeORM та інші компоненти модуля:

import { setRegistry } from '@x-fiber/proton';
import { BusUsersAggTypeormSchema } from './BusUsers.agg.typeorm-schema';

export const BusUsersAggRegistry = setRegistry<'BusUsersAgg'>('BusUsersAgg', {
typeorm: {
name: 'BUS_USERS_AGG',
schema: BusUsersAggTypeormSchema
},
// ... other documents
});