2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Prisma】既存 DB からスキーマ定義ファイルを逆に生成する方法

Last updated at Posted at 2023-05-01

概要

Prisma は、リバースエンジニアリングによるスキーマ生成と、マイグレーションファイルによるスキーマ更新の、両方をサポートしている。

通常は、スキーマ定義ファイルからマイグレーションファイルを生成して、DB スキーマを更新するが、逆に既存の DB からスキーマ定義を生成(リバースエンジニアリング)する方法を記載する。

例えば、既存の DB に影響を与えずに、 Prisma を仕様した DB 処理をプロジェクトで書ける様にしたい場合は今回の手順を実行すればよい。

前提

prisma コマンドをグローバルインストールしていないため、npx をつけて利用する。

事前準備

※ 既にschema.prisma.env があれば、本手順は不要。
Prisma の初期設定コマンドをする。

npx prisma init

リバースエンジニアリング

以下の2つの手順で実現する。

まず、.envDATABASE_URL の接続先が間違いないか確認しておくこと。

スキーマ定義ファイルの更新

prisma の場合、通常実行すると、スキーマ定義ファイル(schema.prisma)を上書きしてしまうため、まずは更新内容をコンソールで確認する。

npx prisma db pull --print

--print オプションを付けると、ファイルに書き込まれずコンソールに標準出力される。

正常動作し、内容も問題なければ、スキーマ定義ファイルの更新をする

npx prisma db pull

prisma/schema.prisma に最新のスキーマ定義が出力される。

Prisma クライアントツールを更新する

次に、各バックエンド処理で呼び出すモデルに内容を反映させるために、以下のコマンドを実行する。

npx prisma generate

prisma generate を実行することで、node_modules/.prisma/client が更新される。

以上で、DB 処理が実装可能となる。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?