【发布时间】:2020-04-12 14:19:24
【问题描述】:
我的 MySQL 数据库中有两个表:
1 表通道:
CREATE TABLE `channel` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_bin NOT NULL,
`youtubeId` varchar(255) COLLATE utf8_bin NOT NULL,
`language` int NOT NULL,
`lastUpdatedDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`createdDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `FK_LANGUAGE` (`language`),
CONSTRAINT `FK_LANGUAGE` FOREIGN KEY (`language`) REFERENCES `language` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
TypeOrm 中的 Entity 看起来像:
@Entity()
export class Channel {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
youtubeId: string;
@OneToOne((type) => Language)
@Column()
language: Language;
@Column()
lastUpdatedDate: Date;
@Column()
createdDate: Date;
}
2 表格语言
CREATE TABLE `language` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`code` varchar(45) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
TypeORM 中的实体看起来像:
@Entity()
export class Language {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
code: string;
}
错误:
问题是,一旦我启动我的 nodejs 服务器,我就会得到一个错误:
DataTypeNotSupportedError:“Channel.language”中的数据类型“Language” “mysql”数据库不支持。
我在数据库方面并不是很出色,我尝试学习 TypeORM,所以我现在处于不知道我是否在 TypeORM 或我的数据库中搞砸了某些东西的情况下。任何可以引导我正确方向的建议都更受欢迎
【问题讨论】:
标签: mysql node.js database express typeorm