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?

.envを保存し忘れてDBに繋がらなかった話 — Cursor初心者の「keep」恐怖と数週間の空白

0
Posted at

はじめに

2025年の冬、初めてエディターを入れて Cursor を使い始めたときの話です(笑)

ポートフォリオ用のアプリを Cursor の AI エージェントと一緒に作っていたのですが、DB の認証がいつまでも通らない
使っていたのは Supabase(DB・Auth)+ Google 認証 + Render(デプロイ)の3つ組み。どれか一つでもズレるとログインできない構成でした。
ぶっちゃけ、年末年始をこれで潰しました。お正月の雑煮より .env の方が頭に残っているレベルです U・ェ・U

原因をあれこれ調べた末に判明したのは、コードのバグでも設定ミスでもなく……

.env を保存していなかった という、地味すぎるやつでした 。。。(lll __ __)バタッ

同じ轍を踏みそうな人の参考になれば幸いです。

想定読者

  • Cursor や AI コーディングを始めたばかりで、.env の扱いがまだ曖昧な方
  • 「keep」を押すのが怖くて、変更を確定できずに迷子になった経験がある方
  • DB 接続エラーでハマっているのに、コード側ばかり見ている方
  • 非エンジニアから開発を始めたばかりで、保存のタイミングがまだ感覚として身についていない方

私の属性

  • 30代女性・事務職
  • 2025年冬に Cursor を入れて、ポートフォリオ用アプリの開発を開始
  • 構成は Supabase + Google 認証 + Render。コードは Cursor、.env の値は 自分で手動コピペ
  • 当時は Git も .env も「なんとなく知ってる」レベル

何が起きたか

流れはシンプルです。ただし、気づくまでが地獄でした。

  1. Cursor のエージェントに Supabase 連携と Google ログインの実装をお願いする
  2. Supabase・Google Cloud・Render のダッシュボードからキーをコピーし、自分で .env に貼り付ける
  3. ローカルや Render 上で接続テストをする
  4. 認証エラー(´・ω・`)
  5. 「Supabase のキーが間違ってる?」「Google の Client ID?」「Render の環境変数?」とあちこちを延々と疑う
  6. 何度やってもダメ — 年末年始もこの繰り返し
  7. たまたま別の場所で Web 版 Copilot に相談したら、「.env 保存した?」と言われる
  8. エディターのタブを見る — .env の横に ●(未保存マーク)
  9. 震える手で Ctrl+S
  10. 接続テスト — 一発で認証成功 ((_๑òωó)_バァン

保存していないのに、ディスク上の .env は空っぽか古いまま。
アプリは古い環境変数を読みにいっていた、というオチです(笑)

数週間ハマっていたのに、保存した瞬間に通った
あのときの衝撃は今でも忘れられません。今までAIとアチコチコード修正に画面確認と動いて来たのに .env タブを開いて、保存ボタン一発だったんですよ。*゚Д゚)ドキドキ から ((_๑òωó)_バァン への落差、でかすぎました。

いつからコードや設定が正しかったかは分かりませんが、とにかく 保存 が正解でした m(_ _)m

認証は犯人探しが難しい

これが問題が長引いたもう一つの大きな理由です。

今回の構成は Supabase + Google 認証 + Render の3つが噛み合わないと動きません。
コードは Cursor が書いてくれても、各サービスのダッシュボードで設定を合わせるのは自分の仕事です。

疑ってた場所 心の声
Supabase の API キー / URL コピペミスしてない? anon key と service role を間違えてない?
Supabase Auth の設定 リダイレクト URL は合ってる? RLS が厳しすぎ?
Google 認証(OAuth) Client ID / Secret は本番用? 承認済みドメインに Render の URL 入れた?
Render の環境変数 ダッシュボード側の値とローカルの .env は揃ってる?
Cursor のコード さっき keep したやつ、コールバック URL 壊してない?
.env の中身 手動で貼ったつもりなのに、どこか1文字違う?

3つのサービス × ローカルと Render の2環境で、「どこが壊れてるか」が一発では分からない
エラーメッセージは出るけど、犯人は Supabase なのか Google なのか Render なのか、初心者には区別がつきません。

実際には .env 未保存という エディター運用の問題 だったのに、見た目は 3サービス連携全体の不具合 に見えていたんです。
だから年末年始、家族がゆっくりしている横で、私だけ Supabase・Google Cloud Console・Render の3タブを行ったり来たりしていました ((( _( 'ω') コソコソ

なぜ .env を保存しなかったのか

ここが本題です。理由は4つ重なっていました。

1. 「うまくいくまで keep しないで」と言われていた

AI エージェントでの実装は、最初の頃 失敗の連続 でした。
そのとき周りから、こんなアドバイスがありました。

  • 動くまで変更を確定しない
  • うまくいかない diff は keep しない
  • いったん様子を見てから採用する

正しい話なんですよね。でも私の頭の中では、こう変換されていました。

keep = 変更を確定する = もう戻せないかも

だから「認証が通るまで keep しない」=「.env も含めて、全部確定しない」になっていたんです ((( _( 'ω') コソコソ

2. 認証が通らないから、いつまでも keep も保存もしなかった

悪循環が発生しました。

  • 保存していない .env を読んでいる
  • だから認証が失敗する
  • 失敗するから「まだ確定できない」
  • 確定しないから保存もしない

失敗が続くほど keep できない。keep しないから失敗が続く。

ループの入口と出口が同じ場所にあって、数週間ひねり出せませんでした U・ェ・U

3. keep 連打で壊滅した前科があった

その前に、別のお試しで keep を押しまくって大惨事 を起こした経験があります。

  • エージェントの提案を次々 keep
  • 気づいたらプロジェクト全体が想定と別物
  • 当時は Git もマメにしていなかった⇒欲しい位置に戻せない
  • 元に戻す手段がなく、お蔵入り

このトラウマが強くて、「keep は最後の一押し」というより 「封印ボタン」 扱いになっていたのも大きいです(笑)

ヾノ。ÒдÓ)ノシ バンバン!! と keep して、プロジェクトがヾノ。ÒдÓ)ノシ バンバン!! と崩壊していく感じです。

4. .env だけ保存が必須だと、知らなかった

.env の存在自体は、Cursor に 推奨フォルダ構成を提案させたとき にファイルごと作ってもらった、という程度の認識でした。
「機密情報はここに書くやつだな」くらいは分かっていたけど、それ以上は曖昧だったんです(笑)

でも 「他のファイルと違って、明示的に保存しないと反映されない」 という感覚が、当時の私にはありませんでした。

  • .ts.tsx は Cursor で keep したあと保存した記憶がある
  • .env自分で貼り付けた から「もう書いてあるはず」
  • タブの ● マークの意味を、.env に対して正しく解釈できていなかった

「なんとなく必要なファイル」は分かっていたのに、運用としての保存までは届いていなかった、というのが正直なところです |ω・*)

ハマり続けたあとでネットを漁り、ようやく「ああ、こういうものか」と腑に落ちた記事がいくつかあります(次の 参考リンク 参照)。知っていれば年末年始は救えたかも、と思うとちょっと切ないです(笑)

参考リンク(.env って何?)

当時の私みたいに「ファイルはあるけど、中身の意味がぼんやり」な人向けに、説明がわかりやすかった記事をまとめました。全部読む必要はなく、困ったときの辞書代わりでどうぞ。

記事 おすすめポイント
【ぼうけんのしょ】.envファイルってなに?調べてみた! #初心者 初心者目線。「設定メモ」「配達アプリの届け先」のたとえが分かりやすい
APIキーを安全に管理しよう!.envファイル入門 | ふわふわコード KEY=VALUE の書き方、.gitignore.env.example まで一通り。AI にコード書かせるときの伝え方もある
.env | PC・IT用語集(のべろぐ) 用語辞典形式。環境変数との違いや「なぜコードに直書きしないか」が整理されている

個人的には、Qiita の「ぼうけんのしょ」記事の 「アプリに渡す設定メモ」 というたとえが、いちばんしっくりきました。
「保存したのに通らない」ときは、まずそのメモが ちゃんと届いているか(=ファイルを保存したか)を疑う、と理解すると腹落ちします ψ(`∇´)ψ

気づいてからやっていること

今は次の3つだけ、意識するようにしています。

やること 理由
.env を触ったら すぐ Ctrl+S 未保存のまま接続テストしない
Git を先に使用 する keep 失敗しても戻れる道を作る
keep と保存を分けて考える keep は diff の採用、保存はディスクへの書き込み。別操作

まとめ

  • .env は書いたつもりと保存済みは別物。接続エラーが続くときは、まずタブの ● を見る
  • Supabase + Google 認証 + Render のようにサービスが重なると、犯人探しが難しい。地味な原因ほど見落としやすい
  • 認証失敗 → keep しない → 保存しない のループに入りやすい。特に AI 実装の初心者期は注意
  • keep 恐怖は Git が効く。壊しても戻れると、だいぶ楽になる
  • .env の存在を知っていることと、毎回保存する習慣は別スキル
  • 意味がぼんやりなら、上の 参考リンク.env の役割から復習する

同じ轍を踏んでいる人がいたら、タブを見てください。
コードを疑う前に、保存ボタンを疑ってください (ノ´∀`*)

年末年始を .env に捧げた私より。

m(_ _)m 読んでくれてありがとうございました (*´▽`*)

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?