# prisma-example **Repository Path**: chengyanqi123/prisma-example ## Basic Information - **Project Name**: prisma-example - **Description**: Nodejs ORM -> prisma demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-13 - **Last Updated**: 2024-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 [Prisma ORM](https://www.prisma.io/docs/orm) 是一款下一代 Node.js 和 TypeScript ORM,它凭借其直观的 数据模型、自动迁移、类型安全和自动完成,为数据库开发带来了全新的开发体验。 # 安装 ```bash # 安装TS npm install typescript ts-node @types/node --save-dev # 初始化TS npx tsc --init # 安装prisma npm install prisma --save-dev # 初始化prisma DATABASE_URL: sqlite | mysql | postgresql | sqlserver npx prisma init --datasource-provider [DATABASE_URL] ``` # 配置 初始化prisma之后,会在根目录生成一个`prisma/schema.prisma`文件以及`.env`文件,`schema.prisma`是prisma的数据模型,`.env`是环境变量文件包含数据连接配置。 **`.env`** ```env DATABASE_URL="DATA_SOURCE_TYPE://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA" ``` **`prisma/schema.prisma`** ```prisma generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") } ``` # 迁移或同步 ## 迁移 如果没有数据库,可以手动添加模型,然后使用命令`npx prisma migrate dev --name [MIGRATION_NAME]`创建迁移文件。 **`prisma/schema.prisma`** ```prisma generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") } model Post { id Int @id @default(autoincrement()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt title String @db.VarChar(255) content String? published Boolean @default(false) author User @relation(fields: [authorId], references: [id]) authorId Int } model Profile { id Int @id @default(autoincrement()) bio String? user User @relation(fields: [userId], references: [id]) userId Int @unique } model User { id Int @id @default(autoincrement()) email String @unique name String? posts Post[] profile Profile? } ``` ```bash # 创建迁移文件 npx prisma migrate dev --name init ``` 此命令执行两项操作: 1. 它为此迁移创建一个新的 SQL 迁移文件 2. 它针对数据库运行 SQL 迁移文件 🚀 目前已经在数据库中创建了三个表 ## 同步 如果已经存在数据库,可以使用以下命令将数据库同步到本地模型 ```bash # 同步数据库到本地模型 npx prisma db pull ``` ## 同步 如果以及存在数据库,可以使用以下命令将数据库同步到本地模型 ```bash # 同步数据库到本地模型 npx prisma db pull ``` # 操作使用 基础用法(CRUD)请参考`index.ts`文件,运行`npx ts-node index.ts`即可查看演示效果。 或者直接阅读[官方文档](https://www.prisma.io/docs/orm/prisma-client/queries/crud)