はじめに
Next.jsで初めてDrizzleを触った際、npx drizzle-kit generateコマンド実行時に、調べてもあまり出てこないエラーが発生し、解決に少し手間取ったので、同じミスをする人が出ないようにまとめました。
先に言っておきますが原因はかなりしょうもなく、drizzle.config.ts の配置場所を間違えていただけです。
発生したエラー
npx drizzle-kit generateコマンド実行しようとして発生したエラーが以下。
~ test_project> npx drizzle-kit generate
No config path provided, using default 'drizzle.config.json'
~test_project\drizzle.config.json file does not exist
does not exist とのことなので、drizzle.config.ts を入れているdbフォルダ内で再度実行しエラー。
~ test_project> npx drizzle-kit generate
No config path provided, using default 'drizzle.config.ts'
Reading config file '~test_project\db\drizzle.config.ts'
Error No schema files found for path config ['./db/schema.ts']
Error If path represents a file - please make sure to use .ts or other extension in the path
ここで最初に見たサイトと他サイトの drizzle.config.ts の配置場所が異なることに気づき、修正することで適切に動作しました。
・誤
test_project/
├ db/
│ ├ drizzle.config.ts // ← 変更前
│ ├ index.ts
│ └ schema.ts
<中略>
├ src/
│ └ <省略>
├ next.config.ts
├ package-lock.json
├ package.json
└ tsconfig.json
・正
test_project/
├ db/
│ ├ index.ts
│ └ schema.ts
<中略>
├ src/
│ └ <省略>
├ drizzle.config.ts // ← 変更後
├ next.config.ts
├ package-lock.json
├ package.json
└ tsconfig.json
~ test_project> npx drizzle-kit generate
No config path provided, using default 'drizzle.config.ts'
Reading config file '~ test_project\drizzle.config.ts'
1 tables
users 3 columns 0 indexes 0 fks
結論
単にdrizzle.config.ts の配置場所が悪かっただけでした。
ただ一応、別フォルダ内に置いていても、コマンド実行時に以下のような--configオプションをつけると問題なく動作するみたいです。
~ test_project> npx drizzle-kit generate --config ./db/drizzle.config.ts