我在一个测试环境中运行测试,在该环境中,迁移是针对随机命名的PostgreSQL模式运行的.但是,很难使用queryRaw测试API,因为这些查询显然不是针对正确的模式运行的.对于"获取用于此连接的PostgreSQL模式的名称",是否有PRISMA方法?

推荐答案

目前,还没有API来获取随机生成的模式,但是您可以使用current_schema()函数来获取当前模式,将其存储在变量中,然后在后续的原始查询中使用它:

import { Prisma } from '@prisma/client';

const schema = await prisma.$queryRaw(`SELECT current_schema()`);

await prisma.$queryRaw(`SELECT * FROM "${Prisma.raw(schema)}".tableName`);

Postgresql相关问答推荐

转换失败:(—122.763091,49.04676)转换为地理(位置)""

Org.postgresql.util.PSQLException:错误:函数LOWER(BYTEA)不存在

Postgres从spark触发post-write

PostgreSQL:动态SELECT查询

找出两个表之间的差异

Postgres 转储按顺序插入

是否可以在 postgresql 中添加表元数据?

如何在 postgresql 上使用 sqlalchemy 进行正确的 upsert?

Heroku Rails 4 无法连接到服务器:connection refused

使用 try/except 与 psycopg2 或with closing?

如何让 Rails 使用 SSL 连接到 PostgreSQL?

Docker Compose + Spring Boot + Postgres 连接

从局域网访问 PostgreSQL 服务器

为 postgresql 存储过程设置隔离级别

大型查询后 psycopg2 泄漏内存

实时监控 PostgreSQL 查询的应用程序?

如何使用 PostgreSQL 在任何列中查找所有具有 NULL 值的行

使用 cte (postgresql) 的结果更新

提高查询速度:simple SELECT in big postgres table

Rails 5 db 迁移:如何修复 ActiveRecord::ConcurrentMigrationError