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

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     String
  name      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 String
  name  String
  age   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

5、表里面有数据还想增加字段,并且是 不为null

在这里插入图片描述

目前表里面有两行数据,增加Column2 列,必填

  1. 直接再数据库中修改,或者使用 数据库可视化软件
  2. prisma 项目里面 执行 npx prisma db pull
    在这里插入图片描述
  3. 继续执行 npm prisma generate
    在这里插入图片描述

这个时候,这里就变了,变成必填项了,因为 TS类型检查的原因

6、npx prisma studio

这个命令,会打开一个网页,可视化的数据库界面
 http://localhost:5555/ 运行再这个地址下

在这里插入图片描述

参考链接

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prisma 是一个现代化的数据库工具包,它可以帮助开发者更轻松地管理和操作数据库Prisma 支持多种数据库,包括 MySQL。 要在 Prisma 中使用 MySQL,你需要进行以下步骤: 1. 首先,你需要在你的项目中安装 Prisma。可以使用 npm 或者 yarn 进行安装: ``` npm install @prisma/cli ``` 2. 安装完成后,你可以使用 Prisma CLI 初始化一个新的 Prisma 项目。在终端中运行以下命令: ``` npx prisma init ``` 这将创建一个新的 Prisma 项目,并生成一个 prisma 目录。 3. 接下来,你需要在 Prisma 的 `schema.prisma` 文件中定义你的数据模型和数据库连接。打开 `prisma/schema.prisma` 文件,然后添加以下代码: ```prisma datasource db { provider = "mysql" url = "mysql://username:password@localhost:3306/database_name" } generator client { provider = "prisma-client-js" } ``` 将 `username`、`password` 和 `database_name` 替换为你自己的 MySQL 连接信息。 4. 定义完数据模型和数据库连接后,运行以下命令来生成 Prisma 客户端: ``` npx prisma generate ``` 这将根据你的数据模型生成 Prisma 客户端代码。 5. 现在,你可以在你的应用程序中使用 Prisma 客户端来操作 MySQL 数据库了。你可以通过导入 Prisma 客户端并使用生成的方法来进行查询、创建、更新和删除操作。 ```javascript const { PrismaClient } = require('@prisma/client'); const prisma = new PrismaClient(); async function main() { const users = await prisma.user.findMany(); console.log(users); } main() .catch(e => console.error(e)) .finally(() => prisma.$disconnect()); ``` 这是一个简单的示例,查询所有的用户并打印出来。 这就是使用 Prisma 连接和操作 MySQL 数据库的基本步骤。你可以在 Prisma 文档中找到更多关于 Prisma 和 MySQL 的详细信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值