【发布时间】:2020-01-08 17:15:00
【问题描述】:
使用 TestORM 连接到已经创建的表。需要注意的是,它和我公司的大多数表格一样,名称中都有一个点:dbo.Application
我的实体文件:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'
@Entity({name: 'Application'}) // fixed
export class Application {
@PrimaryGeneratedColumn()
ApplicationID: number;
@Column()
ApplicationName: string;
@Column()
LastUpdate: number;
}
编辑 好的,我看到了问题。如果没有 {name: 'Application'},它会尝试创建表 'application',而不是 'Application'
但是,我有一个新错误,我无法弄清楚。看起来 TestORM 正在尝试删除类型为 varchar(100) 的 ApplicationName 列。难道它和字符串不跳?
作为记录,数据库列是:
ApplicationID(PK, int, not null)
应用程序名称(varchar(100),null)
LastUpdate(datetime,null)
再次编辑: 在连接中设置 synchronize: false 可防止它删除列。仍然很好奇为什么它之前尝试过,但这很适合居住。
【问题讨论】:
-
dbo.Application 不是表的名称。那是模式和表名。否则,您将编写诸如 select * from dbo.[dbo.Application] 之类的查询,并且如果您正在认真使用 dbo。在您的对象名称中出现了可怕的错误,因为这太糟糕了。
-
很好奇为什么每次我启动它时它都试图创建一个表。现在的错误不同了。将更新问题。
标签: node.js sql-server nestjs typeorm