TypeORM 无法创建名称中带有点的实体表

问题描述 投票:0回答:1

我正在使用 TypeORM 连接到已创建的表。 需要注意的是,它与我公司的大多数表格一样,名称中都有一个点: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'

但是,我有一个新错误,我无法弄清楚。 TypeORM 正在尝试删除类型为 varchar(100) 的 ApplicationName 列。 做它和字符串不跳吗?

根据记录,数据库列是:

ApplicationID(PK, int, not null)

应用程序名称(varchar(100),null)

最后更新(日期时间,空)

再次编辑: 在连接中设置“synchronize: false”可防止删除该列。仍然好奇为什么它之前尝试过,但这是宜居的。

node.js sql-server nestjs typeorm
1个回答
0
投票

为了创建名称中包含不寻常字符的对象,请将名称括在方括号中,如下所示:

[My-Table!]
。但是,在您的情况下,您可能不想这样做,因为
dbo
不是表名称的一部分,而是模式的名称,正如 @sean-lange 正确指出的那样。

© www.soinside.com 2019 - 2024. All rights reserved.