【问题标题】:TypeORM throws Error 'ER_CANT_CREATE_TABLE: Can\'t create table `test`.`comment`TypeORM 抛出错误 'ER_CANT_CREATE_TABLE: Can\'t create table `test`.`comment`
【发布时间】:2020-01-21 01:49:05
【问题描述】:

我试图通过使用 typeorm 来练习制作简单的数据库

实际上,我只是尝试为 typeorm 初学者复制一些简单的示例参考。但不知何故,我不断收到这个错误。

我的实体如下 (普通实体只是 id、createdAt 和 updatedAt 等基本列的实体)


//./entity/User.ts

    imports...

@Entity()
export class User extends Common {
  @Column({ type: "varchar", length: 10 })
  name: string;

  @Column({ type: "int", width: 5 })
  age: number;

  //----------------realtionship----------------
  @OneToMany( 
    type => Comment,
    comment => comment.user
  )
  comments: Comment[];
}

//./entity/Comment.ts

imports...

@Entity()
export class Comment extends Common {
  @Column({ type: "varchar", length: 150 })
  comment: string;

  //------------------Realtionship-----------------
  @Column()
  userId: number;
  @ManyToOne(
    type => User,
    user => user.comments
  )
  @JoinColumn({ name: "userId" })
  user: User;
  // i think these thing causes Error but i don't know why
}

整个错误信息是

body-parser deprecated undefined extended: provide extended option src/app.ts:16:20
QueryFailedError: ER_CANT_CREATE_TABLE: Can't create table `test`.`comment` (errno: 150 "Foreign key constraint is incorrectly formed")
              at ....
              at ....
  message: 'ER_CANT_CREATE_TABLE: Can\'t create table `test`.`comment` (errno: 150 "Foreign key constraint is incorrectly formed")',
  code: 'ER_CANT_CREATE_TABLE',
  errno: 1005,
  sqlMessage: 'Can\'t create table `test`.`comment` (errno: 150 "Foreign key constraint is incorrectly formed")',
  sqlState: 'HY000',
  index: 0,
  sql: 'ALTER TABLE `comment` ADD CONSTRAINT `FK_c0354a9a009d3bb45a08655ce3b` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION',
  name: 'QueryFailedError',
  query: 'ALTER TABLE `comment` ADD CONSTRAINT `FK_c0354a9a009d3bb45a08655ce3b` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION',
  parameters: []
}

【问题讨论】:

    标签: typescript typeorm


    【解决方案1】:

    我认为你是对的,试试这个:

     @ManyToOne(() => User, user => user.comments)
     @JoinColumn({ name: 'userId', referencedColumnName: 'id' })
     user: User;
    

    您缺少引用的ColumnName。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-20
      • 2020-06-30
      • 1970-01-01
      • 2020-09-03
      • 2013-04-13
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多