はじめに
Cloudflare
のD1
を使用してデータベースを作成している際に発生したエラーについてまとめます。今回は、ドキュメント通りにコマンドを実行したにもかかわらずエラーが出たケースの原因と解決方法を紹介します。
この記事は個人的なアウトプットを目的として作成したものです。そのため、誤った情報や不足している内容が含まれている可能性があります。もし間違いや気になる点がございましたら、ぜひご指摘いただけますと幸いです。
現象
下記の公式ドキュメントに沿ってデータベースの設定を進めていました。
手順「5. アプリケーションをデプロイする」で次のコマンドを実行した際にエラーが発生しました。
npx wrangler d1 execute prod-d1-tutorial --remote --file=./schema.sql
すると、以下のようなエラーが表示されました。
unable to read sql text file "./db/schema.sql". please check the file path and try again
ファイルパスの指定に問題があるという内容ですが、実際には前のステップ
「4. D1データベースに対してクエリを実行する」で、ローカル環境に対して同様のコマンドを実行できていました。
npx wrangler d1 execute prod-d1-tutorial --local --file=./schema.sql
原因
調査した結果、schema.sql
ファイル自体がプロジェクト内から削除されていたことが原因でした。つまり、Cloudflare
がファイルを見つけられなかったために「ファイルが読めません」というエラーになっていました。
手順通りにローカルで実行した際は問題なかったため、作業の途中で誤って削除してしまった可能性があります。
解決方法
scehma.sql
ファイルを再度追加することでエラーが解消されました。
再作成後にパスを確認し、再度コマンドを実行したところ正常に処理が完了しました。
npx wrangler d1 execute prod-d1-tutorial --remote --file=./schema.sql
# ✅ 正常に実行できた
終わりに
今回のエラーは単純に「SQLファイルが存在しなかった」ことが原因でした。引き続き学習を進めていきます。