Nest js проблема создания mysql таблицы из сущности - PullRequest
0 голосов
/ 18 марта 2020

У меня проблема при изменении файла объекта, и Nest / TypeOrm регенерирует таблицу mysql. Это не отражает то, что у меня есть в файле сущностей

, это мой user.entity.ts

import { BaseEntity, Entity, Column, Unique, PrimaryGeneratedColumn } from "typeorm";

@Entity()
@Unique(['id'])
export class User extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  uid: string;

  @Column()
  name: string;

  @Column()
  surname: string;

  @Column()
  email: string;

  @Column()
  skype: string;

  @Column()
  levelClassDone: boolean;

  @Column({default: 1, nullable: true})
  userType: number;
}

это описание созданной таблицы в mysql:

+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| name           | varchar(255) | NO   |     | NULL    |       |
| surname        | varchar(255) | NO   |     | NULL    |       |
| email          | varchar(255) | NO   | UNI | NULL    |       |
| uid            | varchar(255) | NO   |     | NULL    |       |
| skype          | varchar(255) | NO   |     | NULL    |       |
| levelClassDone | tinyint      | NO   |     | NULL    |       |
| userType       | int          | YES  |     | 1       |       |
| id             | varchar(255) | NO   | PRI | NULL    |       |
+----------------+--------------+------+-----+---------+-------+

id не является цифрой c и ни auto_increment

Похоже, это кэширование старых версий user.entity.ts, где у меня были разные спецификации полей. Я попытался удалить таблицу, а также удалить всю базу данных.

1 Ответ

0 голосов
/ 18 марта 2020

Попробуйте предоставить опции autoLoadEntities и synchronize для TypeORM при импорте его в свой модуль:

    TypeOrmModule.forRoot({
      autoLoadEntities: true,
      synchronize: true,
      ...
    }
...