【日常记录】【插件】prisma 链接MySQL数据库 简单入门

文章目录

  • 1、新建项目,使用prisma链接数据库
    • 1.1、先创建一个项目
    • 1.2、初始化 npm 配置文件及下载依赖
    • 1.3、初始化TS配置文件
    • 1.4、初始化 prisma
    • 1.5、更改 prisma/schema.prisma
    • 1.6 更改.env 文件
    • 1.7 编写 prisma/schema.prisma
    • 1.8 将编写的 prisma/schema.prisma 映射到数据库
    • 1.9 安装生成 prisma 客户端
    • 1.10 往数据库插入数据及查询数据
  • 2、.env 文件
  • 3、继续修改 prisma/schema.prisma
  • 4、prisma 的daetime的问题
  • 参考链接

1、新建项目,使用prisma链接数据库

1.1、先创建一个项目

mkdir hello-prisma
cd hello-prisma

1.2、初始化 npm 配置文件及下载依赖

npm init -y
npm install typescript ts-node @types/node --save-dev

1.3、初始化TS配置文件

npx tsc --init

1.4、初始化 prisma

npx prisma init

这个命令会干两件事情

  • 创建一个名为 prisma 的目录,并且目录里面有 schema.prisma 文件,这个文件主要是放 表结构的
  • 创建一个名为.env 的配置文件,这个是用来链接数据库的,数据库的连接串就放在这里

在这里插入图片描述

1.5、更改 prisma/schema.prisma

这个格式的文件,是没有提示的,vscode 可以安装这个插件

在这里插入图片描述

这个文件默认是以下代码,但是我们现在用的是MySQL数据库,所以需要换一下

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

正确代码如下!!!

generator client {provider = "prisma-client-js"
}datasource db {provider = "mysql"url      = env("DATABASE_URL")
}

1.6 更改.env 文件

DATABASE_URL="mysql://root:123456@localhost:3306/testprisma"

这个可以根据自己的实际情况,来处理以下,详情参考下面的 .env 文件详解

1.7 编写 prisma/schema.prisma

generator client {provider = "prisma-client-js"
}datasource db {provider = "mysql"url      = env("DATABASE_URL")
}model user {id        Int       @id @default(autoincrement())email     Stringname      String
}

这样表示 ,创建一个 user 表,有三个字段,id是 递增的,就是从1 开始以此往后,还有 email 和 name 是字符串类型

1.8 将编写的 prisma/schema.prisma 映射到数据库

npx prisma migrate dev --name 01init
  • 此命令会创建迁移文件
  • 对数据库运行sql迁移文件

在这里插入图片描述
在这里插入图片描述

有这两个图就说明成功了

用可视化数据库软件,可以验证以下

在这里插入图片描述

1.9 安装生成 prisma 客户端

npm install @prisma/client

1.10 往数据库插入数据及查询数据

新建 src 文件夹,然后创建index.ts 文件

import { PrismaClient } from "@prisma/client";const prisma = new PrismaClient();async function main() {await prisma.user.create({data: {name: "呆呆狗" + Math.floor((Math.random() + 1) * 100),email: "daidog" + Math.floor((Math.random() + 1) * 100) + "@qq.com",},});console.log(await prisma.user.findMany());
}main().then(async () => {await prisma.$disconnect();}).catch(async (e) => {console.error(e);await prisma.$disconnect();process.exit(1);});

终端运行此文件

npx ts-node index.ts

在这里插入图片描述

在这里插入图片描述

这样就是成功了!!!!

2、.env 文件

DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"

在这里插入图片描述

默认是这样的,但是现在是 MySQL数据库,需要换一下

MySQL数据库连接串一般是这个格式mysql://USER:PASSWORD@HOST:PORT/DATABASE

  • User:数据库用户名称
  • PASSWORD:数据库用户的密码
  • PORT:端口号,一般默认是3306
  • DATABASE:数据库名称

3、继续修改 prisma/schema.prisma

比如新增一个 age 字段,需要记录以下用户年龄

generator client {provider = "prisma-client-js"
}datasource db {provider = "mysql"url      = env("DATABASE_URL")
}model user {id    Int    @id @default(autoincrement())email Stringname  Stringage   Int
}

需要执行 npx prisma migrate dev --name 02addAge 会有以下报错,这个错误是因为,添加了一个 age 字段,这个字段不能为空,但是数据库里面现在已经有一条数据了

在这里插入图片描述

npx prisma migrate dev --name 02addAge --create-only 执行这个,创建 迁移文件,但是不在数据库中执行

npx prisma migrate dev 然后执行这个,把 模型的 东西,同步到 数据库上

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些文件夹里面的sql,其实就是 对比之前的表结构,你更改了什么,生成sql语句,然后自动执行/手动执行 同步到数据库

这个时候,打开 src/index,ts ,就会发现有错误,因为 age 字段是必填 不能为空的 加上TS的类型支持,这个时候会有错误提示,需要加上 缺少的属性。我这里缺少两个属性,因为我加了两个

在这里插入图片描述

4、prisma 的daetime的问题

在这里插入图片描述

GMT+0800 通常指的是一个时区偏移量,表示从协调世界时(UTC,Coordinated Universal Time)向东偏移8小时

如若在 prisma 增加一个 datetime 类型的字段,比如现在系统是 2024-06-17 12:00:00,但是插入到数据库就是 2024-06-17 04:00:00

参考链接

  • prisma 快速入门官网
  • prisma 东八区时间问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF被动接口配置(华为)

#交换设备 OSPF被动接口配置 一、基本概念 OSPF被动接口,也称为抑制接口,即将路由器某一接口配置为被动接口后,该接口不会再接受和发送OSPF报文 二、使用场景 在路由器与终端相近或者直接相连的一侧配置被动接口 因为OSPF会定期发送报文…

ensp防火墙web密码重置(前提通过console可以登录)

客户电脑是命令行没有用户名直接输入密码就可以登录了,但是web端不知道admin的密码 前两天遇到运维单位的一台防火墙web网页不知道用户名密码,默认的登录不了,但是通过console可以登录命令行,今天就记录下如何通过命令行修改web页…

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

前言 第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。 运行效果 开发环境 C#, WPF, vs2022, 海康视觉算法平台VisionMaster 4.3.0 基本概念 上图这些.sol为后缀的是vm的方案文件。 打开方案文…

鸿蒙开发过程中出现很多.js或者.js.map怎么办

学习HarmonyOS应用开发已有几天了, 今天在打开DevEco Studio正常开发的过程中, 预览、修改、刷新, 然后就出现了大量的.js以及.js.map文件 这个虽然不影响开发,但是影响体验 问题原因: 编译/预览过程产生的缓存文件, 已反馈给鸿蒙的IDE团队 解决办法…

树莓派pico入坑笔记,快捷键键盘制作

使用usb_hid功能制作快捷键小键盘,定义了6个键,分别是 ctrlz ctrlv ctrlc ctrla ctrlw ctrln 对应引脚 board.GP4, board.GP8, board.GP13 board.GP28, board.GP20, board.GP17 需要用到的库,记得复制进单片机存储里面 然后是main主程…

3dmax2025能用云渲染吗?2025最新云渲染渲染100使用方法

3dmax2025还没用上云渲染?简单3步用上云渲染。 第一步,打开浏览器搜索渲染100,并进入下载客户端并安装 第二步,打开已安装的客户端进行安装,点击登录,未登录注册个账号即可(注册账号时邀请码填…

Sermant标签路由能力在同城双活场景的应用

作者:聂子雄 华为云高级软件工程师 摘要:目前应用上云已成为趋势,用户也对应用在云上的高可靠方案有更高追求,目前同城双活场景作为应用高可靠方案中的一种常见实践方案,对微服务流量提出了数据中心亲和性的要求&…

浙江电信联合中兴通讯取得新突破,完成融合边缘商用验证

前不久,浙江电信联合中兴通讯在融合边缘方面取得新突破,在嘉兴完成了融合边缘的商用验证,并发布了商用版本。接下来,双方在融合边缘方面正式进入商用阶段,有效赋能新质生产力。    随着数字经济的快速发展&#xff0…

数据结构与算法笔记:基础篇 -字符串匹配(下):如何借助BM算法轻松理解KMP算法?

概述 上篇文章讲了 BM 算法,尽管他复杂,也不好理解,但确实工程中非常好用的一种高效字符串匹配算法。有统计说,它是最搞笑、最常用的字符串匹配算法。不过,在所有的字符串匹配算法里,要说最知名的一种的话…

【C++】认识STL

【C】认识STL STL的概念STL的版本STL的六大组件STL的三个境界STL的缺陷 STL的概念 SLT(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个保罗数据结构与算法的软件框架。 STL的版本 原…

便携式手持气象仪:低功耗设计

TH-LSZ05便携式手持气象仪是一款轻便、操作简便的气象监测工具,集成了风向、风速、大气压、温度、湿度五项气象要素的测量功能。这些设备通常设计为体积小、重量轻,以便于用户随时携带并使用。通过使用手持气象仪,用户可以实时获取关键的气象…

列表(list)(Python)

文章目录 一、定义二、列表常用操作 一、定义 list ["张三", "李四", "王五", "赵六"]二、列表常用操作 分类关键字/函数/方法说明增加列表.append(值)在列表末尾追加值列表.insert(索引, 值)在指定位置插入值&#xff…

安徽保安员精选模拟试题(含答案)

1、风险管理的三要素是(),风险评价和风险控制。 A、频率分析 B、风险分析 C、风险转移 D、后果估计 答案:B 2、治安保卫重要部位是指由()确定的、关系本单位生产业务全局的部位和生产环节。 A、企事业重点单位 B、地方政府 C、企事业单位保卫协会 D、公安机关 …

智能室内空气质量监测预警系统小程序设计说明书

智能室内空气质量监测预警系统小程序设计说明书 一、应用功能与系统设计 (一) 应用功能 该小程序设计的目的是为了配合环境监测吸顶灯,Mini空气监测仪等硬件设备实时数据展示与远程设备控制等功能,系统框架图如图1-1所示。用户可以从小程序…

【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt系统相关 | Qt事件 | 事件的介绍及基本概念 文章编号:Qt…

BatchNormalization和Layer Normalization解析

Batch Normalization 是google团队2015年提出的,能够加速网络的收敛并提升准确率 1.Batch Normalization原理 图像预处理过程中通常会对图像进行标准化处理,能够加速网络的收敛,如下图所示,对于Conv1来说输入的就是满足某一分布…

一招解决家里粉尘螨虫太多难题?家用空气净化器哪款品牌效果好?

一到夏天,两天不打扫家里,家里就会布满一层粉尘。而且春夏的气候也是粉尘螨虫生长和繁殖疯狂时期,一不注意室内空气污染卫生的情况下,就会加剧尘螨的滋生,体质弱、敏感的人群生活在这样的空气环境下,还会增…

敏捷开发时代,彻底结束了

最近,我收到一位读者的私信,他最近“内耗”得非常厉害,他可能一时兴起把我的私信当作了吐槽箱。 他们公司一直实行敏捷的管理模式,复盘发现了一个问题:发布与迭代具有强相关性,一个迭代就发布一次&#xf…

Hadoop安装和测试

一,下载 地址:Index of /dist/hadoop/common 选择3.3.6版本(最新版本之前的一个版本,一般比较稳定) 二,解压 解压到/data/module目录,这里随便自定义就好。 tar -zxvf hadoop-3.3.6.tar.gz …

从《2024年人工智能指数报告》 看AI的最新发展趋势

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 《2024年人工智能指数报告》是由斯坦福大学的“以人为本”人工智能研究所(Stanford HAI)发布的,具体发布时间…