执行prisma db pull命令无法识别新增数据表问题咨询
Prisma执行
prisma db pull无法拉取新增表的常见原因 - 数据库schema范围配置问题
如果你使用的是PostgreSQL、SQL Server等支持多schema的数据库,Prisma默认只会拉取datasource配置中指定schema下的表。若你复制的表存放在非指定的schema中,就会被忽略。
多schema场景下需要在datasource块中配置schemas数组指定要拉取的所有schema:datasource db { provider = "postgresql" url = env("DATABASE_URL") schemas = ["public", "你新增表所在的schema名"] } - 新增表未设置主键
Prisma要求所有被同步的表必须包含主键,无主键的表会被prisma db pull直接忽略,执行命令时控制台会输出对应的警告提示,可检查命令输出确认。 - 数据库账号权限不足
Prisma连接数据库使用的账号如果没有新增表的查询、元数据读取权限,就无法识别到该表结构。可先手动用该账号登录数据库,执行查表语句确认是否能正常访问新增表。 - 表/字段包含非法内容
若新增表的表名、字段名使用了Prisma保留关键字,或包含不符合规范的特殊字符,也会导致拉取失败被过滤,可通过prisma db pull的输出警告定位问题。 - 表复制操作未生效
可能存在复制表时未提交事务、复制到了错误的数据库实例/库的情况,可先直接连接Prisma配置的数据库,执行查表命令(MySQL:SHOW TABLES;,PostgreSQL:\dt)确认表确实存在于目标库中。 - Prisma版本存在已知bug
部分旧版本Prisma存在db pull漏拉表的已知问题,可升级到最新稳定版后重新执行命令测试。
内容的提问来源于stack exchange,提问作者Aleksandr Chernyi
相关产品推荐
相关产品推荐

