如何解决在玩笑并行中运行创建扩展的 sql 迁移会触发约束错误
我使用 Prisma 2 作为我的 ORM。用于迁移和查询。
我有一个 createTestContext
助手,它通过以下方式初始化 Prisma:
- 创建新架构
- 通过运行
./node_modules/.bin/prisma migrate deploy --preview-feature
部署迁移(简而言之,它运行我项目目录中的所有迁移)。
在每次测试中,我都会创建一个新的 TestContext
以确保不会有任何副作用。但问题是,由于我的所有测试都是并行运行的,因此所有这些测试都在此迁移的数据库上同时运行:
CREATE EXTENSION IF NOT EXISTS postgis
触发以下错误:
Unique constraint failed on the fields: (`extname`)
解决方法
不确定如何正确解决此问题,但当前的解决方法是捕获 unique_violation
异常并且不对其进行任何处理:
DO
$$
BEGIN
CREATE EXTENSION IF NOT EXISTS postgis;
EXCEPTION
WHEN unique_violation
THEN NULL;
END;
$$
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。