Prismaディレクトリを移動する方法について (schema.prisma: file not foundエラー対応)

2024/10/27に公開

こんにちは、Webエンジニアのまさぴょんです!
今回は、Prismaディレクトリを移動する方法について、解説していきます🐱

Prismaディレクトリを移動すると、Errorが発生する

事の発端は、npx prisma initで作成されるprisma/schema.prismaのディレクトリ配置を変更したことから始まります。。。🥺

ちなみに、Prismaディレクトリは次のように移動しました👀
Befor: prisma/schema.prisma
After: src/vendors/prisma/schema.prisma

Migrationコマンドを実行した際の実際のError Logは次のとおりです👀
schema.prisma: file not foundErrorで、Prismaファイルが見つからないと言われています🤔

hono-prisma-supabase-template % npx prisma migrate dev --name init
Environment variables loaded from .env
Error: Could not find Prisma Schema that is required for this command.
You can either provide it with `--schema` argument, set it as `prisma.schema` in your package.json or put it into the default location.
Checked following paths:

schema.prisma: file not found
prisma/schema.prisma: file not found
prisma/schema: directory not found

See also https://pris.ly/d/prisma-schema-location

エラーの原因は、Prismaディレクトリの変更

エラーの原因は、Prismaディレクトリの変更したことによってschema.prismaファイルが見つからなくなっていることです🥺
この状態を解決するには、次の2つの方法があります👀

解決方法1: --schemaオプションでPathを指定する

コマンドに--schemaオプションを追加して、正しいパスを指定する方法

npx prisma migrate dev --name init --schema src/vendors/prisma/schema.prisma

解決方法2: package.jsonに、schema Path設定を追加する

解決方法1のように、毎回、スキーマファイルのPathは指定するのは面倒です。。。🥺
そこで、スキーマ・ファイルのPathの設定をpackage.jsonに追加する方法を試します💪

package.json
{
  // Prismaセクションを追加して、schemaのPathを定義する
  "prisma": {
    "schema": "src/vendors/prisma/schema.prisma"
  }
}

まとめ

Prismaのディレクトリ変更の際の対応方法を整理しました💪
ぜひ、ご活用ください🙏

Xやってます、フォローよろしくお願いします🙏
https://twitter.com/masanyon1212

参考・引用

https://www.prisma.io/docs/orm

Discussion