1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Hyperdrive】Next.js+NeonをWorkersにデプロイするときの注意点

1
Last updated at Posted at 2026-02-20

2分で読めます. 雑に書きます.
同じ苦しみを味わう人を無くしたい記事です.

前提

Next.js + Cloudflare Workers + Drizzle + Neon + Hono
この構成でブログサイトを作ろうとしている人間に起きた事件です.

公式ドキュメントの罠

Workersの公式ドキュメントで,Neonについてのページ を見ると,
\Neonを使う時はHyperdriveを推奨するよ(意訳)/
って書いてあります.
普通はそうみたいなんですけどねぇ...
よく考えずに従ったのが大ミスだった

WorkersはNode環境じゃない

あんまり詳しくないのですが, WorkersはネイティブにはNode.js依存のパッケージをサポートしていません.(合ってる?)
Node.jsランタイムのNext.jsをデプロイ出来るのも, OpenNextが頑張ってくれていて無理やり動かしているだけです.

pg

公式ドキュメントの最後の方に「こんな感じでテストよろ」っていうコードが載せてあります.
その最初の行がコチラ

import { Client } from "pg";

そしてpgの説明はコチラ

Install the node-postgres driver:

とドキュメント上にあるように, node.js下でpostgreSQLを使うときのドライバです.
ここまでたどり着かないと気づかないんですよね. ミスに.

普通なら, Hyperdriveが本来node.jsでサポートされているpgを動かせるように色々します(多分)
しかし, 本来node.jsじゃないと動かないはずのNext.jsが介入することによってそのへんがごちゃごちゃになります.
CloudflareでNext.js(OpenNext)を運用してVercelに移行した話
たぶん同じようなことだと思われる

逃げ道はある?

AIに
「どうにかなるかい?」
と聞いたところ, 返答は
「うーんexport const runtime = "nodejs";なんてどう?」
でした. 絶対やめたほうがいいよなこれ.

もう一つの方法を使おう

茨の道を進みたく無ければ, ドキュメントに書かれたもう一つの方法,
"Neon serverless driver"を使いましょう.

最後に

博識な方, どうぞ「なに当然のこと言ってんだ?」とか冷笑してください.
そして適当な記事ですが間違ってたらコメントください.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?