Minimal reproduction for @payloadcms/db-sqlite making drizzle-kit/api reachable from an OpenNext Cloudflare server bundle.
-
Install dependencies:
pnpm install
-
Copy the example environment file:
cp .env.example .env
-
Build with OpenNext Cloudflare:
pnpm opennext:build
-
The build fails while OpenNext bundles the server function:
ERROR: Could not resolve "drizzle-kit-8c53b399dac79e94/api"
-
The intermediate Next output also shows
drizzle-kit/apiin the traced server files:rg "drizzle-kit/api|drizzle-kit-.*api|generateSQLiteMigration|pushSQLiteSchema" .next .open-next
drizzle-kit/api should not be included in the production runtime/server output unless migrations or schema generation are being run.
drizzle-kit/api remains reachable from the SQLite adapter module graph. In this repro, that causes OpenNext Cloudflare server bundling to fail with:
Could not resolve "drizzle-kit-8c53b399dac79e94/api"The suspected reachable path is:
@payloadcms/db-sqlite
-> @payloadcms/drizzle/sqlite
-> requireDrizzleKit
-> require('drizzle-kit/api')The relevant Payload import path is:
// packages/db-sqlite/src/index.ts
import { requireDrizzleKit } from '@payloadcms/drizzle/sqlite'Then the adapter attaches requireDrizzleKit to the adapter object. The implementation eventually loads:
// packages/drizzle/src/sqlite/requireDrizzleKit.ts
const {
generateSQLiteDrizzleJson,
generateSQLiteMigration,
pushSQLiteSchema,
} = require('drizzle-kit/api')payload: 3.84.1
@payloadcms/next: 3.84.1
@payloadcms/db-sqlite: 3.84.1
next: 16.2.4
@opennextjs/cloudflare: 1.19.4
node: >=22
pnpm: 10.33.0