sequelize-typescript icon indicating copy to clipboard operation
sequelize-typescript copied to clipboard

ToMany and BelongsTo Error

Open lawrence-peng opened this issue 5 years ago • 3 comments

Versions

  • sequelize: 5.15.1
  • sequelize-typescript: 1.1.0
  • typescript 3.3.3
import {
  Table,
  Column,
  Model,
  PrimaryKey,
  HasMany,
  Default,
  AutoIncrement,
} from "sequelize-typescript";

import { TaskDetail } from "./TaskDetail";

@Table({
  tableName: "task_brief",
  timestamps: false,
  freezeTableName: true,
})
export default class TaskBrief extends Model<TaskBrief> {
  @PrimaryKey
  @AutoIncrement
  @Column
  id: number;

  @Default(0)
  @Column({ field: "current_step" })
  currentStep: number;

  @Default(0)
  @Column
  state: number;

  @HasMany(() => TaskDetail , "taskId")
  taskDetails: TaskDetail [];
}
import {
  Table,
  Column,
  Model,
  PrimaryKey,
  HasMany,
  Default,
  AutoIncrement,
} from "sequelize-typescript";

import { TaskBrief } from "./TaskBrief";

@Table({
  tableName: "task_detail",
  timestamps: false,
  freezeTableName: true,
})
export default class TaskDetail extends Model<TaskDetail> {
  @PrimaryKey
  @AutoIncrement
  @Column
  id: number;

  @Default(0)
  @Column
  state: number;

  @ForeignKey(() => TaskBrief)
  @Column({ field: "task_id", type: DataType.BIGINT })
  taskId: number;

  @BelongsTo(() => TaskBrief)
  taskBrief: TaskBrief;
}

db table scheme

  • task_brief
name type
id bigint
state int
current_step int
  • task_detail
name type
id bigint
task_id int
state int

throw error

D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:29
            return super.model(model_service_1.getModelName(model.prototype));
                                                                  ^
TypeError: Cannot read property 'prototype' of undefined
    at Sequelize.model (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:29:67)       
    at associations.forEach.association (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:51:46)
    at Array.forEach (<anonymous>)
    at models.forEach.model (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:49:26)  
    at Array.forEach (<anonymous>)
    at Sequelize.associateModels (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:45:16)
    at Sequelize.addModels (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:37:14)   
    at new Sequelize (D:\Users\Administrator\Documents\node-example\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:19:22)
    at Object.<anonymous> (D:\Users\Administrator\Documents\node-example\sequelize\lib\sequelize.ts:5:26)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Module.m._compile (D:\Users\Administrator\Documents\node-example\node_modules\ts-node\src\index.ts:439:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Object.require.extensions.(anonymous function) [as .ts] (D:\Users\Administrator\Documents\node-example\node_modules\ts-node\src\index.ts:442:12)    
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (D:\Users\Administrator\Documents\node-example\sequelize\index.ts:1:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Module.m._compile (D:\Users\Administrator\Documents\node-example\node_modules\ts-node\src\index.ts:439:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)

lawrence-peng avatar May 18 '20 13:05 lawrence-peng

I'm having this same issue. Did you figure out how to do your imports to avoid this? @lawrence-peng

mjgriffin1113 avatar Jun 18 '20 20:06 mjgriffin1113

@RobinBuschmann I can't for the life of me determine why I'm getting this error. Any plans on revisiting this? https://github.com/RobinBuschmann/sequelize-typescript/issues/230

mjgriffin1113 avatar Jun 18 '20 22:06 mjgriffin1113

@mjgriffin1113 were you ever able to get a fix for this issue?

Moses-Alero avatar Sep 09 '22 14:09 Moses-Alero