sequelize-typescript
sequelize-typescript copied to clipboard
ToMany and BelongsTo Error
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)
I'm having this same issue. Did you figure out how to do your imports to avoid this? @lawrence-peng
@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 were you ever able to get a fix for this issue?