Sequelize Postgres Не сохраняет данные с асоциаций

Описал модель таблицы, все по документации

Services

  async addError(errorDto: ErrorDto, origin: string) {
    const saveData: ICreatError = {...errorDto, project: ''}
    if (errorDto.logs) saveData.logs = errorDto.logs.map(({x, y}: {x: number, y:number}) => ({x, y}))

    if (!origin && errorDto.project) saveData.project = errorDto.project
    else if (/'secret'/.test(origin)) saveData.project = 'secret'
    else if (/secret/.test(origin)) saveData.project = 'secret'
    else if (/secret/.test(origin)) saveData.project = 'secret'
    else if (/secret/.test(origin)) saveData.project = 'secret'

    try {
      return this.errorModel.create(saveData)
    } catch (err) {
      throw new HttpException('Error model save', HttpStatus.NOT_ACCEPTABLE);
    }
  }

Model Error

import {
  AllowNull,
  AutoIncrement,
  Column,
  DataType,
  HasMany, HasOne,
  Model,
  PrimaryKey,
  Table,
  Unique
} from "sequelize-typescript";
import {ApiProperty} from "@nestjs/swagger";
import {ILog, Log} from "@/models/error/log.model";
import {ICreateSize, Size} from "@/models/error/size.model";

export type Type = 'front' | 'back'
export type Project = 'secret' | 'secret' | 'secret' | 'secret' | ''

export interface ICreatError {
  error: string
  errorInfo: string
  function: string
  component: string
  logs: ILog[]
  project: Project
  href: string
  type: Type
  size?: ICreateSize
}

@Table({tableName: 'error'})
export class Error extends Model<Error, ICreatError> {
  @ApiProperty({example: 1})
  @Unique
  @AutoIncrement
  @PrimaryKey
  @Column({type: DataType.INTEGER})
  _id: number

  @ApiProperty({required: true, example: `Page: https://www.df-alliance.com/directory Function: API middleware()
Logs:

[Front end]
Error: Request failed with status code 401`})
  @AllowNull
  @Column({type: DataType.STRING})
  error: string

  @ApiProperty()
  @Column({type: DataType.STRING})
  errorInfo: string

  @ApiProperty({example: 'handler()'})
  @Column({type: DataType.STRING})
  function: string

  @ApiProperty({example: 'resources/js/Pages/Main/Faq/Item.tsx'})
  @Column({type: DataType.STRING})
  component: string

  @ApiProperty({example: '#Max'})
  @Column({type: DataType.STRING})
  author: string

  @ApiProperty({example: [{content:'',tag:'DIV','class':'980',x: 1, y:203}]})
  @HasMany(() => Log, 'errorId')
  logs: Log[]

  @ApiProperty({example: 'secret'})
  @AllowNull
  @Column({type: DataType.STRING})
  project: Project

  @ApiProperty({example: 'https://secret.com'})
  @Column({type: DataType.STRING, defaultValue: ''})
  href: string

  @ApiProperty({example: 'front'})
  @Column({type: DataType.STRING})
  type: Type

  @HasOne(() => Size, 'errorId')
  size: Size
}

Model Log

import {
  AutoIncrement,
  BelongsTo,
  Column,
  DataType,
  ForeignKey,
  Model,
  PrimaryKey,
  Table,
  Unique
} from "sequelize-typescript";
import {Error} from "@/models/error.model";

export interface ICreateSize {
  width: number
  height: number
  vHeight: number
}

@Table({modelName: 'size', createdAt: false, updatedAt: false})
export class Size extends Model<Size, ICreateSize> {
  @ForeignKey(() => Error)
  @PrimaryKey
  @AutoIncrement
  @Unique
  @Column({type: DataType.INTEGER})
  errorId: number

  @Column
  width: number

  @Column
  height: number

  @Column
  vHeight: number

  /* Associations */

  @BelongsTo(() => Error)
  error: Error
}

Model Size

import {
  AutoIncrement,
  BelongsTo,
  Column,
  DataType,
  ForeignKey,
  Model,
  PrimaryKey,
  Table,
  Unique
} from "sequelize-typescript";
import {Error} from "@/models/error.model";

export interface ILog {
  x: number,
  y: number
}

@Table({modelName: 'logs'})
export class Log extends Model<Log, ILog> {
  @ForeignKey(() => Error)
  @PrimaryKey
  @AutoIncrement
  @Unique
  @Column({type: DataType.INTEGER})
  errorId: number

  @Column
  x: number

  @Column
  y: number

  /* Associations */

  @BelongsTo(() => Error)
  error: Error
}

введите сюда описание изображения

Таблиц logs и size нету, в чем может быть ошибка???


Ответы (1 шт):

Автор решения: Mr. Byte

Проблема была в том что когда я создаю экземпляр я указываю не ассоциации

      return this.errorModel.create(saveData, {include: [Log, Size]})

Надеюсь это кому то поможет не сидеть 3 дня в раздумиях как это делал я))

→ Ссылка