-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Prisma 6.18.0からの変更点が多くあるため、対応する必要があります。多くは、prisma initで生成されるファイルが大幅に変わったことが原因です。
- 事前に
prismaパッケージと@prisma/clientパッケージをインストールしておくことが必要となったようです。
Prisma 6.17.1以前では、これらのパッケージをインストールしていなくてもprisma db pushを実行することで自動でprismaパッケージと@prisma/clientパッケージがインストールされていましたが、Prisma 6.18.0では事前にこれらをインストールしていない状態でprisma db pushを実行するとエラーが出るようになりました。
→事前にprismaパッケージと@prisma/clientパッケージをインストールすることで解決します ✅ - Prisma 6.18.0では、
prisma initをした際に生成されるファイルでprisma.config.tsが使用されるようになりました。cf. https://www.prisma.io/blog/announcing-prisma-6-18-0#init-with-prismaconfigts-automatically- デフォルトで生成される
prisma.config.tsファイルの拡張子は.tsですが、中身はESM+TypeScriptであるため、ESM+TypeScript環境になっていない場合には、適切な対応が必要となります。
→TypeScript環境の場合は、拡張子を.mtsにするか、typeフィールドをmoduleにすることで解決できます。JavaScript環境の場合も同様にすることで動作は確認できました ✅
- デフォルトで生成される
- Prisma 6.18.0では、
prisma initをした際に生成されるファイルでprisma-client-jsgeneratorではなくprisma-clientgeneratorが使用されるようになったようです。prisma-clientgeneratorを使用すると、.envファイルが自動で読み込まれません。(cf. https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client )
TypeScriptファイルやJavaScriptファイルを実行する際には、--env-fileflagなどを使用して.envファイルを読み込む必要があります。(cf. https://www.prisma.io/docs/orm/reference/prisma-config-reference#using-environment-variables )prisma db pushなどをする際のために、prisma.config.ts内でdotenvを使用する必要があるのではないかと考えられます。
→dotenvと--env-fileflagを使用することで解決します ✅prisma-clientgeneratorでは、prisma generateをした際にESMで書かれたTypeScriptファイルが生成されます。cf. https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client
→TypeScriptで開発をしている際には何も問題がありませんが、JavaScriptで開発をしている際にはtscなどを使用してJavaScriptに変換するかprisma-client-jsgeneratorに戻す必要があります。この件については、Issueが存在し、3-month loadmapにも載せられているため、しばらく待つ必要がありそうです 🚧prisma-clientgeneratorを使用する場合には、Prisma Clientのインポート方法が変わります。 cf. https://www.prisma.io/docs/orm/prisma-schema/overview/generators#importing-prisma-client
→"./generated/prisma/client"などからインポートすることで、解決できます ✅
Metadata
Metadata
Assignees
Labels
No labels