typescript - 将模型与 sequelize-typescript 相关联
问题描述
我正在尝试创建以下关联:
用户有一个帐户 用户有一个应用程序 应用程序有许多成员
我的问题是,当创建模型时,帐户表会获得 Application 的外键,而根本不会创建成员表。
有谁知道我做错了什么?下面是我正在使用的代码
//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;
}
解决方案
如果你使用 webpack,你需要在 table 装饰器中添加 tableName 和 modelName
推荐阅读
- c++ - remove() 遇到问题
- javascript - 我的 switch 语句有问题。继续使用默认值
- sharepoint - 此页面的安全验证无效并且可能已损坏。请使用您的网络浏览器的返回按钮再次尝试您的操作
- python - 过滤数据帧子集的更有效方法
- nuxt.js - 如何在 Nuxt 的组合 API 中使用 vuex 地图助手
- mysql - 如果在过去 10 天内更新了任何 TimeEntries,则条件 SQL 查询将相关任务的所有 TimeEntires 相加
- php - 即使通过应用密码进行身份验证,Yandex 电子邮件帐户也会被阻止
- excel - 使用 VBA 宏向 PDF 添加签名
- sql - 如何使用 RSQLite 检索具有 3 列(日)、(月)和(年)的最小日期?
- google-cloud-platform - 创建 Google Dataflow 模板文件时出错