Open10

Prismaでseedしてみる

TecSocTecSoc

schema.prismaに以下の1行を追加するファイルパスはPJに応じて)

seed = "./seed.ts"
TecSocTecSoc

npx prisma db seedしてみる
内心、tsをどうやって実行するんだろうと思っていたが
無事にエラーで怒られる

Environment variables loaded from .env
Error: To configure seeding in your project you need to add a "prisma.seed" property in your package.json with the command to execute it:

1. Open the package.json of your project
2. Add the following example to it:

"prisma": {
  "seed": "ts-node prisma/seed.ts"
}

If you are using ESM (ECMAScript modules):

"prisma": {
  "seed": "node --loader ts-node/esm prisma/seed.ts"
}


3. Install the required dependencies by running:
yarn add -D ts-node typescript @types/node

More information in our documentation:
https://pris.ly/d/seeding

めんどくさいから無い英語力で理解を試みたところ、TSがインストールされてないって言っている気がするので
言われた通りにインストールする

yarn add -D ts-node typescript @types/node
TecSocTecSoc

よく読んだらTSのインストールの前に1と2があったので
package.jsonのscripts.prisma.seedを定義してみる
忘れたけどなんかエラー

TecSocTecSoc

よく読んだら、package.jsonのscriptsとは書いてなかったので直下に
prisma.seedを定義・seed実行
訳分からんエラー。なんならVSCodeの機能でseed.tsにジャンプできるやんけ。なにがdoesn't existじゃボケ!w

Error: Provided schema path `ts-node prisma/seed.ts` from `package.json` doesn't exist.
TecSocTecSoc

ChatGPT君に聞いたら
package.jsonのscriptsに以下を定義しろって言われた。
なるほどめちゃめちゃ普通やんけ。npxでprismaを実行する話はどこへ行った

"prisma:seed": "ts-node ./prisma/seed.ts",
TecSocTecSoc

何も書いてないけどさっきまでさっきまで実はnpx prisma db seed をひたすら実行していた
うって変わって、yarn prisma:seedを実行する
さっきと全然違うエラー。よく見るやつだから一気に安心圏にきた気がする

(node:20192) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
****/prisma/seed.ts:37
TecSocTecSoc

package.json
"type": "module",
を追加。結局変わらぬエラー

Environment variables loaded from .env
Error: Provided schema path `ts-node ./prisma/seed.ts` from `package.json` doesn't exist.