首页 > 其他分享 >了解Prisma

了解Prisma

时间:2023-04-10 18:26:05浏览次数:59  
标签:map Prisma 32 db prisma 了解 id

Prisma下一代 ORM


  • 官网:https://www.prisma.io/

  • 组成

    • Prisma Client 用于 Node.js 和 TypeScript 的自动生成和类型安全的查询构建器

    • Prisma 迁移:迁移系统

    • Prisma Studio :GUI工具、用于查看和编辑数据库中的数据。

  • Pirsma CLI

    #生成 prisma 的客户端即 Prisma Client
    npx prisma generate
    
    #数据库推送 如根据模型创建数据库表结构
    npx prisma db push
    
    #启动Studio,生成浏览器选项卡
    npx prisma studio
    

更多语法:Prisma CLI Command Reference

使用Node.js 调测

// prisma/schema.prisma 文件,创建模型文件
datasource db {
 provider = "mysql"
 url = "mysql://username:password@hostname:port/db"
 // relationMode = "prisma" //是否是prisma模式,是则不创建外键,这里创建外键
} 
generator client {
 provider = "prisma-client-js"
} 
model Role {
 id Int @id @default(autoincrement()) //主键,自增长 默认 int 11
 code String @unique @db.VarChar(32) //code 标识 32位
 label String @db.VarChar(32) //varchar 32
 isPublish Boolean @default(true) //默认 true
 User User[] //关系 
@@map("user_role") //表名
} 
model User {
 id Int @id @default(autoincrement())
 account String @unique @db.VarChar(32) //账户
 password String @db.VarChar(32) //密码
 roleId Int @map("role_id") //权限id
 isPublish Boolean @default(true) @map("is_publish")
 createAt DateTime @default(now()) @map("create_at") //创建时间
 updateAt DateTime @updatedAt() @map("update_at") //更新时间
 role Role @relation(fields: [roleId], references: [id]) //约束关系
 @@map("sys_user")
}

#创建、更新数据库
npx prisma db push

# 生成prisma client
npx prisma generate
import { PrismaClient } from '@prisma/client';

 async getUser() {
    const prisma = new PrismaClient();
    await prisma.role.create({
      data: {
        id: 1,
        code: 'admin',
        label: '管理员',
      },
    });

    await prisma.user.create({
      data: {
        account: 'zcookeis',
        password: 'zcookies',
        roleId: 1,
      },
    });
    return await prisma.user.findMany();
  }

  • 接口请求

  • npx prisma studio


标签:map,Prisma,32,db,prisma,了解,id
From: https://www.cnblogs.com/zcookies/p/17303877.html

相关文章

  • Mybatis-Plus详解(一篇带入了解底层原理)
    一.MP简介我们知道,Mybatis属于一个半自动的ORM框架。之所以说Mybatis是一个半自动的ORM框架,原因是它还需要我们自己在注解或是映射文件中编写SQL语句,并没有实现完全的自动化。SQL语句的编写,虽然增加了项目和业务需求实现的灵活性,但对一些基本表的操作而言,无疑增加了数据库操作的......
  • 新手小白需要了解的 Go 基础细节杂谈
    今日记录一下学习golang这门语言遇到的一些比较特殊的细节,供大家参考。      所以,在我们输出内容的时候,可以包含很多的非ASCII码字符。实际上,Go是天生支持UTF-8的,任何字符都可以直接输出,甚至可以使用UTF-8中的任何字符作为标识符    _这个......
  • Pro Android学习笔记(九):了解Content Provider(下下)
    Contentprovider作为信息的读出,比较常见的还有文件的读写,最基础的就是二进制文件的的读写,例如img文件,音频文件的读写。在数据库中存放了该文件的路径,我们可以通过ContentProvider获得InputSream和OutputStream,实现对文件的操作。ProAndroid4.0提及有关内容,但语焉不详,可同时参考h......
  • Pro Android学习笔记(八):了解Content Provider(下中)
    在之前提供了小例子BookProvider,我们回过头看看如何将通过该ContentProvider进行数据的读取。(1)增加privatevoidaddBook(Stringname,Stringisbn,Stringauthor){/*从ContentProvider的insert()方法的参数可以看到,通过ContentValues来进行数据的传递。ContentValues是k......
  • python基础篇: python中的流程控制,你都了解吗?
    在之前的文章中大致的介绍过python中的流程控制语句,今天通过一些案例来详细了解一下python中的流程语句。目前python中流程控制语句,包含如下,如有遗漏欢迎留言补充。条件判断语句在python中条件判断语句包括了if、else、elif,还有在python3.10的版本新增了match-case语句。i......
  • 了解一下Bootstrap
    在制作页面的过程中,我发现了一些更有效率的方法。Bootstrap是一个用于快速开发Web应用程序和网站的前端框架。Bootstrap是基于HTML、CSS、JAVASCRIPT的。基本结构:Bootstrap提供了一个带有网格系统、链接样式、背景的基本结构。这将在Bootstrap基本结构部分详细讲解。......
  • 请求上下文分析,wtforms(了解)
    请求上下文分析,wtforms(了解)1.1导出项目的依赖#-下载语句:pipfreeze#使用第三方模块,更精确的导出依赖pipreqs 第一步:安装pip3installpipreqs第二步:使用命令,导出项目依赖pipreqs./ -win由于编码问题会出错:使用这个语句解决:pipreqs./--encoding=utf8......
  • Azure OpenAI入门(二):了解提示工程
    1 基础环境配置1. 测试先决条件:l Python3.7.1 或更高版本l 安装openai客户端和python-dotenv、langchainpipinstallopenaipython-dotenvlangchain2. 导入库和配置AzureOpenai相关凭据#初始化链接importopenaiimportosimportIPythonfromlangchain.llmsimportO......
  • 关于FTP文件传输协议说明,带你了解更详情的文件传输协议
    网络和其他网络上的人与设备之间的通信使用协议进行。您可以说协议定义了对话规则:谁必须在何时发送哪些信息?如果数据没有到达接收者,会发生什么?您如何保护转帐免受错误和犯规?每当我们使用Internet时,OSI模型中的这些协议就一直在使用。最著名的是HTTP和HTTPS,通常用于访问网站。另一......
  • API 测试 | 了解 API 接口测试 | API 接口测试指南
    什么是API?API是一个缩写,它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程,协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。例行程序:执行特定任务的程序。例程也称为过程,函数或子例程。协议:在两个系统之间传输数据的格......