freks blog

about

Prismaでの開発の進め方

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

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

npm install --save-dev prisma

初期化します

npx prisma init --datasource-provider sqlite

.envprisma/schema.prisma が作られます
.env.gitignore に入れておいたほうがいいです

prisma/schema.prisma

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

になっています

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

を追記して、データベースに反映していきます
自分でかかずに、他のデータからインポートするときは Prismaでsqliteのデータベースからスキーマを作る にまとめてあります

スキーマの書き方は Models | Prisma Documentation あたりを見て書きます

migrationします

npx prisma migrate dev --name init

これで prisma/migrations/20240921070138_init/migration.sql ファイルが作らsqliteに反映されました
sqliteのデータベースファイルは ./prisma/dev.db に作られています

sqliteつないでみるには SQLiteの使い方 を参考にしてください

prisma/schema.prisma にmodelを増やしてみます

model User {
  id    Int    @id @default(autoincrement())
  name  String
  posts Post[]
}

model Post {
  id        Int     @id @default(autoincrement())
  title     String
  published Boolean @default(true)
  authorId  Int
  author    User    @relation(fields: [authorId], references: [id])
}
npx prisma migrate dev --name add_post

これで prisma/migrations/20240921070510_add_post/migration.sql ファイルが作られました

schema.prisma を変更、migrate dev でマイグレーションファイルを作っていくのが基本でよさそうです

特例

migrationファイルを作らずに、直接データベースを変更するには

npx prisma db push

一から環境を作るときにはすべてのマイグレーションファイルを適用するには

prisma migrate deploy

Prisma clientを生成するには

npx prisma generate

データベースをリセットしたかったら

npx prisma migrate reset

まとめ

最低限抑えられたかとおもいます

PR


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