0
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?

Remix ✕ Prisma ✕ Cloudflare D1でファイルを指定して記載されているSQLを実行したらエラーが出た

Last updated at Posted at 2024-10-21

概要

コマンド$ npx wrangler d1 execute DB名 --preview --remote --file SQLが記載されているファイル名を実行し、プレビュー環境のD1 DBに対してSQLを実行しようと思った。エラーが出てSQLが実行できなかった。

筆者の場合の解消方法を簡単にまとめる。

エラー内容

一見無関係っぽくみえるjs(TypeScript)のコードのエラーのように思える。

✘ [ERROR] Cannot read properties of undefined (reading 'forEach')

解決方法(結論)

アプリケーションルートにて下記コマンドを実行してwrangler(CloudfrareのCLIツール)のバージョンアップを行った。

npm install wrangler@latest

$ npx wrangler d1 execute DB名 --preview --remote --file SQLが記載されているファイル名を実行したら問題なくSQLが実行された。

解決までの経緯

  1. $ npx wrangler d1 execute DB名 --preview --remote --file SQLが記載されているファイル名を実行したらプレビューのD1 DBに対してSQLが実行できずエラー発生
  2. $ npx wrangler d1 execute DB名 --local --file SQLが記載されているファイル名を実行したら問題なくローカルのDBに対してSQLを実行できた
  3. $ npx wrangler d1 migrations apply DB名 --preview --remoteは問題なくコマンドの実行そのものはできた(マイグレーション対象記載がなかったのでマイグレーションそのものは行われなかった)
  4. 確かにコード上にいくつか「forEach」の記載はあるのでコメントアウトして$ npx wrangler d1 execute DB名 --preview --remote --file SQLが記載されているファイル名を実行したらプレビューのD1 DBに対してSQLが実行できずエラー発生
  5. $ npx wrangler d1 execute DB名 --preview --remote --command "SELECT * FROM テーブル名;"は問題なく実行でき、プレビュー用D1のテーブルの情報が取得できた
  6. wranglerコマンド実行する都度「⛅️ wrangler 3.57.1 (update available 3.81.0)」と出力されていることに気がつく
  7. $ npm install wrangler@latestを実行してwranglerのバージョンアップを実施

筆者の場合の問題

npxコマンドには実行の優先順位があることを知らなかった。

Remix ✕ Cloudflare環境構築直後ではnpxでwranglerコマンドを実行していたが、途中でwranglerをローカルにnpm installしていた。このタイミングから「npx使っているが、リモートへ取りに行かないでローカルのwranglerを使ってコマンドを実行」していた。これは初期こそ問題なかったが、wranglerのバージョンが上がって行くにつれてうまく動作しなくなった。
npxを使っているのでwranglerの最新バージョンを使っていると筆者が思い込んでいたため発見に時間がかかった。

参考文献

0
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
0
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?