在 TypeORM 上接收“QueryFailedError:重复键值违反唯一约束”“pg_type_typname_nsp_index”错误
Posted
技术标签:
【中文标题】在 TypeORM 上接收“QueryFailedError:重复键值违反唯一约束”“pg_type_typname_nsp_index”错误【英文标题】:Receiving "QueryFailedError: duplicate key value violates unique constraint "pg_type_typname_nsp_index" error on TypeORM 【发布时间】:2021-08-17 18:08:10 【问题描述】:我使用 TypeORM 启动了一个项目,但遇到了问题。我在 TypeORM 配置中将同步选项设置为 true,但是当我运行应用程序时,我收到以下错误:QueryFailedError: duplicate key value denied unique constraint "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
)
]
我不打算在生产中使用这个项目,我希望 TypeORM 为我生成表格,就是这样。也许我可以通过将同步设置为 false 并使用迁移来解决这个问题。
它似乎正在创建或尝试创建表 3 次。
无论如何,希望有人可以帮助我。
【问题讨论】:
【参考方案1】:我也有同样的问题。
我使用了两次定义相同的索引。
@Index( unique: true )
@Column( type: 'varchar', nullable: true, unique: true )
【讨论】:
以上是关于在 TypeORM 上接收“QueryFailedError:重复键值违反唯一约束”“pg_type_typname_nsp_index”错误的主要内容,如果未能解决你的问题,请参考以下文章
在 heroku 上部署 typeorm/typescript 应用程序
在 TypeORM 与 GraphQL 的多对多关系上使用数据加载器,查询多对多
使用 TypeORM 在 Postgres bytea 上保存缓冲区仅存储 10 个字节