使用Nuxt、Prisma、Supabase执行迁移状态查询时遇错误
解决Prisma + Supabase执行
prisma migrate status时"prepared statement 's0' does not exist"错误 以下是针对该错误的几种有效解决方法:
切换到Supabase直接数据库连接
你当前使用的是Supabase的连接池地址(端口6543),这可能和Prisma的schema引擎的准备语句机制冲突。修改.env中的DATABASE_URL:
将aws-0-ap-southeast-1.pooler.supabase.com:6543替换为aws-0-ap-southeast-1.supabase.co:5432,使用标准PostgreSQL端口直接连接数据库,而非连接池。升级Prisma到最新版本
旧版本Prisma与Supabase连接池的兼容性存在问题,执行以下命令升级核心包和客户端:npm install prisma@latest npm install @prisma/client@latest升级后重新执行
npx prisma migrate status验证。强制重置Prisma客户端缓存
缓存的schema引擎文件可能导致异常,强制重新生成客户端:npx prisma generate --force完成后再次运行迁移状态查询命令。
检查并修复数据库用户权限
确保你的数据库用户拥有足够权限操作Prisma迁移表和执行准备语句:
在Supabase Studio的SQL编辑器中执行以下语句(替换your_database_user为你的实际用户名):GRANT SELECT ON _prisma_migrations TO your_database_user; GRANT EXECUTE ON FUNCTION pg_prepare(text, text, text[]) TO your_database_user;权限更新后重试命令。
完成上述操作后,重新执行npx prisma migrate status,应该会正常输出Your database is now in sync with your schema.。
内容的提问来源于stack exchange,提问作者Jasurbek Mannonov
相关产品推荐
相关产品推荐

