1
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?

【Prisma】npx prisma generate した時何が起きているのか【実験】

Last updated at Posted at 2024-06-05

想定読者

Prismaで「npx prisma generate」をコマンドした時に何が起きているのか知りたい人

書いている人間

Prisma触り始めた初心者

結論

複数のファイルが作成される

どうやって確かめたか

まずは、git initする。

公式ドキュメントの記載に沿って、schema.prismaで以下を記載する。

generator client {
  provider = "prisma-client-js"
  output   = "../src/generated/client"//ここを追記
}

こうすることで、npx prisma generateした時のoutput pathが
../src/generated/clientになる。

準備が終わったので、npx prisma generateする。

ここまできたら、git statusなどで確認する。

% git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   prisma/schema.prisma

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        src/

no changes added to commit (use "git add" and/or "git commit -a")

% git add .

% git commit 
[main 805281f] 
 21 files changed, 7993 insertions(+)
 create mode 100644 src/generated/client/default.d.ts
 create mode 100644 src/generated/client/default.js
 create mode 100644 src/generated/client/edge.d.ts
 create mode 100644 src/generated/client/edge.js
 create mode 100644 src/generated/client/index-browser.js
 create mode 100644 src/generated/client/index.d.ts
 create mode 100644 src/generated/client/index.js
 create mode 100755 src/generated/client/libquery_engine-darwin.dylib.node
 create mode 100644 src/generated/client/package.json
 create mode 100644 src/generated/client/runtime/edge-esm.js
 create mode 100644 src/generated/client/runtime/edge.js
 create mode 100644 src/generated/client/runtime/index-browser.d.ts
 create mode 100644 src/generated/client/runtime/index-browser.js
 create mode 100644 src/generated/client/runtime/library.d.ts
 create mode 100644 src/generated/client/runtime/library.js
 create mode 100644 src/generated/client/runtime/react-native.js
 create mode 100644 src/generated/client/runtime/wasm.js
 create mode 100644 src/generated/client/schema.prisma
 create mode 100644 src/generated/client/wasm.d.ts
 create mode 100644 src/generated/client/wasm.js

上記のファイルが生成されていた。

では、schema.prismaに以下を追記した状態で、さらにnpx prisma generateしたらどうなるのか試してみた。

model Hoge {
  id Int @default(autoincrement()) @id
  title String 
}

npx prisma generate を実行

git statusを実行

% git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   prisma/schema.prisma
        modified:   src/generated/client/edge.js
        modified:   src/generated/client/index-browser.js
        modified:   src/generated/client/index.d.ts
        modified:   src/generated/client/index.js
        modified:   src/generated/client/package.json
        modified:   src/generated/client/schema.prisma
        modified:   src/generated/client/wasm.js

no changes added to commit (use "git add" and/or "git commit -a")

git diff を実行。
※長かったので、ごく一部のみ抜粋した。

% git diff
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index 6b791ff..ac93e9c 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -23,4 +23,9 @@ model Posts {
 model Piyo {
   id Int @default(autoincrement()) @id
   title String 
+}
+
+model Hoge {
+  id Int @default(autoincrement()) @id
+  title String 
 }

→当たり前ですが、schema.prismaのmodelを編集すれば、npx prisma generateで作成されるファイルも修正されるということがわかりました。

npx prisma genrateで何しているのか、GPTに聞いてみた

要約すると、
(1)Prismaクライアントの生成
(2)TypeScriptの型情報の生成

※本当は公式ドキュメントを読むべきです。
公式ドキュメントの部分、今後記載します。

感想

npx prisma generateはいつもルーチンでコマンドしていたが、npx prisma migrate dev と違って、何をしているのかよくわかっていませんでした。
今回調べられて、目に見える形で何しているのかを知ることができてよかったです。(それまでは「型ファイル」を作成するものくらいの認識だったため)(またコマンドする時に、何をしているのかわからない状態で打つのがストレスだった)

1
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
1
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?