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

Mac下执行drizzle-kit generate报JSON语法错误求助

Drizzle-Kit生成迁移时JSON解析错误排查

问题场景

使用Drizzle ORM管理数据库迁移,修改Schema.ts后执行迁移生成命令:

yarn db:generate Test

(对应原始命令:drizzle-kit generate --config=drizzle.config.ts --name Test)

出现以下错误:

john@Johns-MacBook-Pro repo % yarn db:generate Test
yarn run v1.22.22
$ drizzle-kit generate --config=drizzle.config.ts --name Test
Reading config file '/Users/john/Documents/code/repo/drizzle.config.ts'
SyntaxError: Unexpected token  in JSON at position 0
    at JSON.parse (<anonymous>)
    at snapshots.reduce.malformed (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:6955:29)
    at Array.reduce (<anonymous>)
    at validateWithReport (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:6953:32)
    at prepareMigrationFolder (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:6995:22)
    at prepareAndMigratePg (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:33066:40)
    at Object.handler (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:88522:13)
    at async run (/Users/john/Documents/code/repo/node_modules/drizzle-kit/bin.cjs:87056:7)
✨  Done in 0.61s.

使用的drizzle.config.ts配置文件:

import { defineConfig } from 'drizzle-kit';

export default defineConfig({
    out: './src/database/migrations',
    schema: './src/database/Schema.ts',
    dialect: 'postgresql',
    dbCredentials: { url: process.env.DB_URL ?? '' },
});

已确认process.env.DB_URL配置正确,求错误原因及解决方法。

错误原因及解决方法

这个错误是迁移目录下的快照文件损坏导致的。Drizzle-Kit会读取配置中out指定目录(即./src/database/migrations)内的.snapshot.json快照文件,若这些文件内容为空、格式错误或存在乱码,就会触发JSON解析失败。

解决步骤:

  • 定位到./src/database/migrations目录
  • 删除目录下所有.snapshot.json格式的文件
  • 重新执行迁移生成命令

注:删除快照文件后,Drizzle-Kit会重新生成新的快照,不会影响已有的迁移文件,仅会重新对比当前Schema与数据库状态生成新迁移。

内容的提问来源于stack exchange,提问作者NULL pointer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:38:26