You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drizzle ORM简单查询失效问题求助

解决Drizzle ORM + Neon PostgreSQL 查询返回空数组的问题

排查方向与解决方案

1. 升级依赖版本

部分旧版本的drizzle-orm和@neondatabase/serverless存在适配问题,导致生成的SQL语句缺少分号,被Neon的查询解析器异常处理。执行以下命令升级到最新稳定版:

npm update drizzle-orm @neondatabase/serverless
# 或使用yarn
yarn upgrade drizzle-orm @neondatabase/serverless

2. 显式指定数据库Schema

确认users表是否在默认的public schema下,若连接时未指定schema,可能导致查询不到数据。修改连接配置,添加schema选项:

import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
import { users } from './your-schema-path'; // 替换为你的schema文件路径

export const sql = neon(process.env.DRIZZLE_DATABASE_URL || "");
export const db = drizzle(sql, {
  logger: true,
  schema: { public: [users] } // 显式指定要使用的schema和表
});

3. 自定义SQL生成钩子(临时 workaround)

如果升级后问题仍存在,可以通过Drizzle的prepare钩子手动给SQL添加分号:

export const db = drizzle(sql, {
  logger: true,
  prepare: (query) => `${query};`
});

这个方法会在所有生成的SQL末尾自动追加分号,适配Neon的查询要求。

4. 验证连接字符串正确性

确保DRIZZLE_DATABASE_URL环境变量包含完整的连接信息,包括正确的数据库名称、用户名、密码以及Neon的端点,避免因连接到错误数据库导致返回空结果。


内容的提问来源于stack exchange,提问作者Lukáš Peťko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:52:37