我正在尝试创建以下关联:
用户拥有一个帐户用户拥有一个应用程序具有多个成员
我的问题是,当创建模型时,account表获得Application的外键,而member表根本不会被创建。
有人知道我做错了什么吗?下面是我使用的代码
//index.ts
const sequelize = new Sequelize(database, username, password, params);
sequelize.addModels([
Member,
Application,
Account,
User,
]);
return sequelize;
//Member.ts
import {
Table,
Column,
Model,
BelongsTo,
ForeignKey,
DataType,
} from "sequelize-typescript";
import { Application } from "./application";
@Table({ tableName: "Members" })
export class Member extends Model<Member> {
@ForeignKey(() => Application)
@Column({ type: DataType.INTEGER })
applicationId: number;
@BelongsTo(() => Application)
application: Application;
}
// Application.ts
import {
Table,
Column,
Model,
BelongsTo,
HasMany,
ForeignKey,
DataType,
} from "sequelize-typescript";
import { User } from "./user";
import { Member } from "./member";
@Table({ tableName: "Applications" })
export class Application extends Model<Application> {
@ForeignKey(() => User)
@Column({ type: DataType.INTEGER })
userId: number;
@HasMany(() => Member)
members: Member;
@BelongsTo(() => User)
user: User;
}
//Account.ts
import {
Table,
Column,
Model,
BelongsTo,
ForeignKey,
DataType,
} from "sequelize-typescript";
import { User } from "./user";
@Table({ tableName: "ZohoCrms" })
export class ZohoCrm extends Model<ZohoCrm> {
@ForeignKey(() => User)
@Column({ type: DataType.INTEGER })
userId: number;
@BelongsTo(() => User)
user: User;
}
//user.ts
export class User extend model<User> {
....
@HasOne(() => ZohoCrm, "userId")
zohoCrm: ZohoCrm;
@HasOne(() => Application, "userId")
application: Application;
}发布于 2020-09-04 19:25:10
如果您使用的是webpack,则需要在表修饰器中添加tableName和modelName
https://stackoverflow.com/questions/63740015
复制相似问题