Prisma CLIã«ã€ããŠð

Prisma CLI ããŒãã·ãŒãð
Prisma Migration (Dev ç°å¢)
npx prisma migrate dev --name init
Server åŽã® Prisma Client ãçæããã
npx prisma generate
# ããŒã¿ããŒã¹ãã€ã°ã¬ãŒã·ã§ã³ã®äœæ
prisma migrate dev --name <migration-name>
# ããŒã¿ããŒã¹ãªã»ããïŒéçºç°å¢ã®ã¿ïŒ
prisma migrate reset
# Prisma Studioã®èµ·åïŒããŒã¿ããŒã¹ã®GUI管çããŒã«ïŒ
prisma studio

Prismaã®Migrationã³ãã³ãð
Prismaã®Migrationã³ãã³ãã«ã€ããŠèª¬æããŸãã
Prismaã§ã¯ãããŒã¿ããŒã¹ã¹ããŒãã®ç®¡çãšãã€ã°ã¬ãŒã·ã§ã³ã«ä»¥äžã®äž»èŠãªã³ãã³ãã䜿çšããŸãïŒPrisma CLIçµç±ã§å®è¡ïŒïŒ
-
ãã€ã°ã¬ãŒã·ã§ã³ã®äœæ
prisma migrate dev
- éçºç°å¢ã§äœ¿çšããã
schema.prisma
ãã¡ã€ã«ã«åºã¥ããŠãã€ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãçæããããŒã¿ããŒã¹ã«é©çšããŸãã - äŸ:
npx prisma migrate dev --name init
ïŒ--name
ã§ãã€ã°ã¬ãŒã·ã§ã³åãæå®ïŒ
- éçºç°å¢ã§äœ¿çšããã
-
ãã€ã°ã¬ãŒã·ã§ã³ã®é©çš
prisma migrate deploy
- æ¬çªç°å¢ã§äœ¿çšãããæ¢åã®ãã€ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãããŒã¿ããŒã¹ã«é©çšããŸãã
- äŸ:
npx prisma migrate deploy
-
ãã€ã°ã¬ãŒã·ã§ã³ã®ãªã»ãã
prisma migrate reset
- éçºç°å¢ã§ããŒã¿ããŒã¹ããªã»ãããããã€ã°ã¬ãŒã·ã§ã³ãæåããåé©çšããŸãïŒããŒã¿ãåé€ãããã®ã§æ³šæïŒã
- äŸ:
npx prisma migrate reset
-
ãã€ã°ã¬ãŒã·ã§ã³ã®ç¶æ 確èª
prisma migrate status
- ãã€ã°ã¬ãŒã·ã§ã³ã®é©çšç¶æ³ã確èªããŸãã
- äŸ:
npx prisma migrate status
-
ãã€ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ã®çæïŒé©çšããã«ïŒ
prisma migrate diff
- ã¹ããŒããšããŒã¿ããŒã¹ã®å·®åã確èªãããããã€ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãçæãããããŸãã
- äŸ:
npx prisma migrate diff --from-schema-datamodel schema.prisma --to-database
泚æç¹:
- ã³ãã³ããå®è¡ããåã«ã
schema.prisma
ãã¡ã€ã«ãæ£ããèšå®ãããŠããããšã確èªããŠãã ããã -
npx
ã䜿çšããå ŽåãPrisma CLIããããžã§ã¯ãã«ã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸãïŒnpm install prisma --save-dev
ã§ã€ã³ã¹ããŒã«å¯èœïŒã
å ·äœçãªç¶æ³ããšã©ãŒãããã°æããŠãã ããããã詳ãããµããŒãããŸãïŒ

npx prisma generateãšã¯ïŒ
npx prisma generate
ã¯ãPrisma CLIïŒã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ïŒã§äœ¿çšãããã³ãã³ãã§ãPrismaã¹ããŒããã¡ã€ã«ïŒé垞㯠schema.prisma
ïŒã«åºã¥ããŠãPrisma Clientãçæãããã®ã§ãã
å
·äœçã«ã¯ãnpx prisma generate
ãå®è¡ãããšã以äžã®ãããªããšãè¡ãããŸãïŒ
-
schema.prisma
ã®è§£æ: Prismaãã¹ããŒããã¡ã€ã«ãèªãã§ãããŒã¿ããŒã¹ã®ã¢ãã«ïŒããŒãã«ããªã¬ãŒã·ã§ã³ïŒãçè§£ããŸãã -
Prisma Clientã®çæ: ã¹ããŒãã«åºã¥ããŠãåå®å
šãªããŒã¿ããŒã¹ã¯ãšãªãå®è¡ã§ããJavaScript/TypeScriptçšã®ã¯ã©ã€ã¢ã³ãã³ãŒããçæããŸãããã®çæãããã³ãŒãã¯éåžžã
node_modules/@prisma/client
ã«ä¿åãããŸãã - åå®çŸ©ã®æäŸ: TypeScriptã䜿çšããŠããå Žåãçæãããã¯ã©ã€ã¢ã³ãã«ã¯åå®çŸ©ãå«ãŸãããããéçºäžã«åãšã©ãŒãé²ãããããªããŸãã
䜿çšäŸ
äŸãã°ãschema.prisma
ã«ä»¥äžã®ãããªã¢ãã«ãå®çŸ©ãããŠãããšããŸãïŒ
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
npx prisma generate
ãå®è¡ãããšãPrisma Clientãçæãããæ¬¡ã®ããã«ã³ãŒãã§äœ¿çšã§ããŸãïŒ
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
const users = await prisma.user.findMany();
console.log(users);
}
main();
泚æç¹
-
npx prisma generate
ã¯ã¹ããŒãããã¯ã©ã€ã¢ã³ããçæããã ãã§ãããŒã¿ããŒã¹èªäœã®æ§é ã倿ŽïŒãã€ã°ã¬ãŒã·ã§ã³ïŒãããã®ã§ã¯ãããŸããã - ãã€ã°ã¬ãŒã·ã§ã³ã«ã¯
npx prisma migrate
ç³»ã®ã³ãã³ãã䜿ããŸãã -
npx
ã¯Node.jsã®ããã±ãŒãžã©ã³ããŒã§ãPrisma CLIãããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããŠããªããŠãå®è¡ã§ããŸãããã ãããããžã§ã¯ãã«Prismaãèšå®ãããŠããå¿ èŠããããŸãã

npx prisma migrate dev ãããåŸã« npx prisma generateããð
ããããã®ã³ãã³ãã®åœ¹å²
-
npx prisma migrate dev --name init
- ãã®ã³ãã³ãã¯ãPrismaã¹ããŒãïŒ
schema.prisma
ïŒã«åºã¥ããŠããŒã¿ããŒã¹ã«ãã€ã°ã¬ãŒã·ã§ã³ãé©çšããŸããã€ãŸããããŒã¿ããŒã¹ã®ããŒãã«ããªã¬ãŒã·ã§ã³ãäœæã»æŽæ°ããŸãã -
--name init
ã¯ãã€ã°ã¬ãŒã·ã§ã³ã«ååãã€ãããã®ã§ãäŸãã°ååã®ã»ããã¢ããã衚ããinitããšããååã«ãªããŸãã - ãã®ã³ãã³ãã¯ããŒã¿ããŒã¹ã®æ§é ã倿ŽããŸãããPrisma ClientïŒã¢ããªã±ãŒã·ã§ã³åŽã§äœ¿ãã³ãŒãïŒã¯æŽæ°ãããŸããã
- ãã®ã³ãã³ãã¯ãPrismaã¹ããŒãïŒ
-
npx prisma generate
- ãã®ã³ãã³ãã¯ãæŽæ°ããã
schema.prisma
ïŒãŸãã¯ãã€ã°ã¬ãŒã·ã§ã³åŸã®ã¹ããŒãïŒã«åºã¥ããŠãPrisma ClientãçæããŸãã - çæãããã¯ã©ã€ã¢ã³ãã¯ãããŒã¿ããŒã¹ã®ææ°ã®æ§é ã«åãããåå®å šãªã¯ãšãªãæäŸããŸãã
- ãã®ã³ãã³ãã¯ãæŽæ°ããã
ãªãäž¡æ¹å¿ èŠãïŒ
-
npx prisma migrate dev
ã¯ããŒã¿ããŒã¹åŽãæŽæ°ããã ããªã®ã§ãã¢ããªã±ãŒã·ã§ã³åŽïŒPrisma ClientïŒããã®å€æŽãåæ ããã«ã¯npx prisma generate
ãå¿ èŠã§ãã - ããšãã°ãæ°ããã¢ãã«ã远å ããããæ¢åã®ãã£ãŒã«ãã倿Žãããããå Žåããã€ã°ã¬ãŒã·ã§ã³åŸã«
prisma generate
ãããªããšãã³ãŒãå ã§å€ãPrisma Clientã䜿ã£ãŠããŸããåãšã©ãŒãå®è¡æãšã©ãŒãçºçããå¯èœæ§ããããŸãã
å®è¡ã®æµã
éåžžã以äžã®ãããªæé ã«ãªããŸãïŒ
-
schema.prisma
ãç·šéïŒã¢ãã«è¿œå ã倿Žãªã©ïŒã -
npx prisma migrate dev --name <migration-name>
ãå®è¡ããŠããŒã¿ããŒã¹ã«å€æŽãé©çšã -
npx prisma generate
ãå®è¡ããŠPrisma ClientãæŽæ°ã - ã¢ããªã±ãŒã·ã§ã³ã³ãŒããæžããææ°ã®Prisma Clientã䜿çšã
äŸå€
ãã prisma generate
ãå¿ããŠããéçºäžã«ãšãã£ã¿ããã«ãæã«åãšã©ãŒãåºãããšã§æ°ã¥ãããšãå€ãã§ãããã ãããã¹ããã©ã¯ãã£ã¹ãšããŠã¯ããã€ã°ã¬ãŒã·ã§ã³åŸã«å¿
ã prisma generate
ãå®è¡ããããšãç¿æ
£ã¥ããã®ãããããã§ãã
çµè«ïŒnpx prisma migrate dev --name init
ã®åŸã« npx prisma generate
ãå®è¡ããã¹ãã§ããããã§ããŒã¿ããŒã¹ãšã¢ããªã±ãŒã·ã§ã³ãåæããç¶æ
ã§éçºãé²ããããŸãïŒ