在 TypeORM 上收到“QueryFailedError:重复键值违反唯一约束“pg_type_typname_nsp_index”错误

dan*_*rum 8 typeorm nestjs

我用 TypeORM 启动了一个项目,但遇到了问题。我已在 TypeORM 配置上将同步选项设置为 true,但是当我运行应用程序时,我收到以下错误:QueryFailedError: 重复键值违反唯一约束“pg_type_typname_nsp_index”

我读过一些相关内容,但我发现的唯一一件事是有人说这是与并行运行测试有关的问题,而不是我遇到的同一问题。

可能与 async/await 有关,这是数据库连接部分:

export const databaseProviders = [
    {
        provide: 'DATABASE_CONNECTION',
        useFactory: async () => await createConnection({
            type: "postgres",
            host: process.env.TYPEORM_HOST.toString(),
            port: Number(process.env.PORT),
            username: process.env.TYPEORM_USER.toString(),
            password: process.env.TYPEORM_PASSWORD.toString(),
            database: process.env.TYPEORM_DATABASE,
            entities: [
                 __dirname + '/../**/*.entity{.ts,.js}',
            ],
            synchronize: true,
            logging: true
        })
    }
]
Run Code Online (Sandbox Code Playgroud)

我不打算在生产中使用这个项目,我希望 TypeORM 为我生成表,仅此而已。也许我可以通过将同步设置为 false 并使用迁移来解决这个问题。

它似乎正在创建或尝试创建该表 3 次。

类型ORM日志记录

无论如何,希望有人能帮助我。

use*_*628 5

我也有同样的问题。

我定义了相同的索引两次。

  @Index({ unique: true })
  @Column({ type: 'varchar', nullable: true, unique: true })
Run Code Online (Sandbox Code Playgroud)


Coc*_*oco 5

我有同样的问题,通过删除 dist 文件夹解决了。这可能成为问题的原因是由于之前的迁移。