PostgreSQL CHECK 验证拒绝等效的 `NOT IN` 和 `<> ALL` 表达式
软件包和版本
PrismaCLI: 8.0.0-rc.11 @Prisma/orm-postgres: 8.0.0-rc.11
发生了什么事?
被观察到的缺陷证据
在独立核实的PostgreSQL案中,有效的迁移SQL成功完成,PostgreSQL创建了预定的物理计划.
然后,Schema核查报告的是4个CHECK的表达差异。 每一种差异都只是代表:
预期:`无.' 观察:QQ全 (ARRAY[.])
没有发现任何不相关的计划差异。 迁移跑者使用相同的验证比较路径.
- 独立复制状况
中性Prisma RC.11独立包已经证明:
- 有效的模型级CHECK作者。
- 成功的合同排放。
- 成功的移民规划。
- 在生成的合同和出走文物中保留CHECK的表述。
独立项目没有转移到PostgreSQL,独立计划核查没有。 因此,没有声称这是PostgreSQL核查故障的完成端到端复制。
你想怎样?
Schema 核查应确认与PostgreSQL CHECK 上游等同,包括普通目录重写,如NOT IN (.)'和ALL (.)',而不是将它们报告为计划差异。
最小复制量
准备的中性包包含以下三个文件.
在安装了被绑定的直接依赖之后,以下命令成功地演示了准备路径:
嘘 ./node modules/.bin/Prisma 合同发射 ./node modules/.bin/Prisma 迁移计划 -- -- 名称检查-复制
迁移计划保留了生成的迁移文物中的CHECK表达.
本套件故意不作为完成的独立端到端复制而呈现. 观察到的核查器故障来自上述经独立核实的PostgreSQL案。
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
贾森
{
"名":"Prisma-检查-正态-反正".
"私人":真实的,
"从事":{
"Prisma":"8.0.0-rc.11","ZZ".
"@Prisma/orm-postgres":"8.0.0-rc.11" (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
ZZTERM16 配置图
从“ Prisma/配置” 导入 {定义PrismaConfig }; 从“@Prisma/orm-postgres/config”中导入 {将Config 定义为 omConfig } ;
导出默认定义 PrismaConfig ({) 圆形: 圆形 合同: "./Prisma/ Contracts.Prisma", ~ , , ( ) ,
- ;
Prisma/合同。
```23ZZ
模型示例{
id Int@id (英语).
状态字符串
检查( X)
表达式 : “ status not in ('A','B')”,
映射 : “ 例如 status check”
(中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
环境
操作系统:macOS Node.js:v24.19.0. 注: 11.17.0 (客舱)
PrismaCLI: 8.0.0-rc.11 (英语). @Prisma/orm-postgres: 8.0.0-rc.11 (中文(简体) ).
其他背景
独立的迁移计划产生了两个精确的添加剂操作:
- 制定 " 公众 " 计划。
- 创建表格 " 实例 " 。
该表包含两个非核列,一个是主键,一个是映射的CHECK . . . . . . .
内容来源: prisma/prisma