【发布时间】:2020-04-03 11:32:57
【问题描述】:
我是 TypeORM 的新手。在 NestJS + TypeORM/postgres 应用程序中,我有这三个非常简单的实体
@Entity()
export class Book extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
year: string;
}
@Entity()
export class Author extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
}
@Entity()
export class Genre extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
}
如您所见,目前还没有任何关系,没有自定义表或列名,纯默认实体。
当我启动应用程序(使用 synchronize: true)并查看 pgAdmin 时,我可以看到 author 和 genre 表与重复表一起创建,共享相同的列集:
author
author_entity
genre
genre_entity
book
这是设计使然吗?
book 实体没有重复的原因是什么。如果这是意外行为,我应该在哪里调查?
【问题讨论】:
-
这不是预期的行为,不。您是否曾经将您的作者和流派实体命名为“AuthorEntity”和“GenreEntity”?我可能是错的,但我的猜测是同步不会仅仅因为实体被重命名而删除旧表。
-
是的,这就是线索。因此,当我删除 dist 文件夹时,事情就变得顺理成章了。随意添加您的评论作为答案,我会接受它。