freks blog

about

Prismaでsqliteのデータベースからスキーマを作る

created: 2024-09-18
おすすめ記事: 出会ってよかったプログラマー本

prismaを入れます
Getting started with Prisma Migrate | Prisma Documentation を参考にしました

npm install --save-dev prisma

初期化します

npx prisma init --datasource-provider sqlite

したあとにsqliteのデータベースファイルをルートディレクトリにコピー
データベースからスキーマ作ろうとしたらエラーが出ました

$ npx prisma db pull
Prisma schema loaded from schema.prisma
Environment variables loaded from .env
Datasource "db": SQLite database "dev.db" at "file:./dev.db"

✖ Introspecting based on datasource defined in schema.prisma
Error: 
P1003 The introspected database does not exist:

./dev.db を用意したのですが、置く場所が違いました

./prisma/dev.db に置いたら成功しました

$ npx prisma db pull
Prisma schema loaded from prisma/schema.prisma
Environment variables loaded from .env
Datasource "db": SQLite database "dev.db" at "file:./dev.db"

✔ Introspected 3 models and wrote them into prisma/schema.prisma in 30ms
      
Run prisma generate to generate Prisma Client.

ファイル場所間違えやすそうですね

prismaでテーブル管理するために、初期データを作ります

mkdir -p prisma/migrations/0_init

0_ で始まると最初に実行されます

作られたスキーマから初期ファイルを作ります

$ npx prisma migrate diff \
--from-empty \
--to-schema-datamodel prisma/schema.prisma \
--script > prisma/migrations/0_init/migration.sql

prismaの初期ファイルが作られました
migrateで管理するために適用します

npx prisma migrate resolve --applied 0_init

prisma/dev.db-journal が作られます

これでprisma使っていける環境が整いました

PR


Amazonのアソシエイトとして、blog.freks.jp は適格販売により収入を得ています。
This site is managed by freks