🐷
node.js / Prisma ORM / sqlite を試す例
■ 概要:
node.js / ORM / Prisma 初級編で試したメモとなります
- Getting started を例を試しました。
■ 環境
- node 10
- prisma: 2.20.0
■ 参考
https://www.prisma.io/docs/getting-started/quickstart-typescript
■ 試した内容
- 上記の curlで取得できるサンプルに、従って進めました
実行は、 yarn devで実行できました
curl -L https://pris.ly/quickstart | tar -xz --strip=2 quickstart-master/typescript/starter
npm install
- prisma/schema.prisma ,定義やdb種類(sqlite) の設定らしいです
@relation が、FK(外部key) らしいです
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
- script.ts , userリストみたいです
script.ts
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
// A `main` function so that you can use async/await
async function main() {
const allUsers = await prisma.user.findMany()
console.log(allUsers)
}
//
main()
.catch(e => {
throw e
})
.finally(async () => {
await prisma.$disconnect()
})
- script.ts , 追加の例
script.ts
async function main() {
const post = await prisma.post.create({
data: {
title: 'Prisma makes databases easy',
author: {
connect: { email: 'sarah@prisma.io' },
},
},
})
console.log(post)
const allUsers = await prisma.user.findMany({
include: { posts: true },
})
console.dir(allUsers, { depth: null })
}
- script.ts , updateの例
script.ts
async function main() {
const post = await prisma.post.update({
where: { id: 2 },
data: { published: true },
})
console.log(post)
}
補足
- npx prisma studio で、管理ツールのようで
http://localhost:5555/ で使えました
Discussion