基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用 Prisma 连接 OceanBase 数据库
更新时间:2026-04-09 14:12:04
功能适用性
Prisma 适用于 OceanBase 数据库 MySQL 模式。
Prisma 是一个现代化的数据库工具包,提供类型安全的数据库访问。本文将介绍如何使用 Prisma 连接 OceanBase 数据库的 MySQL 模式。
前提条件
- 已安装 Node.js 14.0.0 或更高版本
- 已安装 npm 或 yarn 包管理器
- 已部署 OceanBase 数据库并且创建了 MySQL 模式租户
操作步骤
- 检查 Node.js 和 npm 版本
- 安装必要的依赖
- 获取 OceanBase 数据库连接信息
- 创建并配置项目
- 运行示例程序
步骤一:检查 Node.js 和 npm 版本
打开终端,运行以下命令检查 Node.js 和 npm 的版本:
node -v
npm -v
步骤二:安装必要的依赖
创建项目目录并初始化:
mkdir prisma-oceanbase-demo cd prisma-oceanbase-demo npm init -y npm install prisma @prisma/client初始化 Prisma:
npx prisma init --datasource-provider mysql初始化完成后,你将看到以下输出:
✔ Your Prisma schema was created at prisma/schema.prisma You can now open it in your favorite editor. Next steps: 1. Set the DATABASE_URL in the .env file to point to your existing database. 2. Run prisma db pull to turn your database schema into a Prisma schema. 3. Run prisma generate to generate the Prisma Client. 4. Start querying your database with Prisma Client. More information in our documentation: https://pris.ly/d/getting-started配置环境变量:
初始化后,Prisma 会自动创建
.env文件和prisma/schema.prisma文件。编辑.env文件,设置 OceanBase 数据库连接信息:# .env DATABASE_URL="mysql://username:password@host:port/database?schema=public"注意
- 将
username、password、host、port和database替换为你的 OceanBase 数据库连接信息 - 确保
schema参数与你的数据库架构名称匹配 - 如果使用 SSL 连接,需要添加
?sslmode=require参数
- 将
拉取数据库架构(如果数据库已存在表):
npx prisma db pull此命令会从现有数据库拉取表结构并更新
prisma/schema.prisma文件。生成 Prisma 客户端:
npx prisma generate此命令会读取
prisma/schema.prisma文件并生成对应的 TypeScript 类型定义和 Prisma 客户端代码。创建数据库迁移(仅适用于新项目):
npx prisma migrate dev --name init如果是新项目,使用此命令来:
- 创建迁移文件
- 应用迁移到数据库
- 重新生成 Prisma 客户端
注意
如果已经使用
db pull从现有数据库拉取了表结构,则不需要执行此步骤。
步骤三:数据操作示例
本节展示如何使用 Prisma 进行基本的数据操作,包括插入和查询 users 表数据。
1. 初始化 Prisma 客户端
首先,在你的项目根目录下创建 index.js 文件,并添加以下代码:
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
async function main() {
// 1. Create a new user
const newUser = await prisma.users.create({
data: {
username: 'ambermoe',
email: 'amber@example.com',
password_hash: 'hashed_password_here', // Use bcrypt for password hashing in production
},
})
console.log('User created successfully:', newUser)
// 2. Query user
const user = await prisma.users.findUnique({
where: {
email: 'amber@example.com',
},
})
console.log('Retrieved user:', user)
}
main()
.catch((e) => {
console.error('Error:', e)
process.exit(1)
})
.finally(async () => {
await prisma.$disconnect()
})
2. 运行示例
确保已经完成以下步骤:
确保
prisma/schema.prisma中已正确定义 users 表模型如果是新项目,应用数据库迁移:
npx prisma migrate dev --name init如果是从现有数据库拉取的表结构,可以跳过此步骤。
生成 Prisma Client:
npx prisma generate运行示例代码:
node index.js
运行后,你将在控制台看到新创建的用户信息和查询到的用户信息。
User created successfully: {
id: 2,
username: 'ambermoe',
email: 'amber@example.com',
password_hash: 'hashed_password_here',
created_at: 2025-06-04T03:40:43.000Z,
updated_at: 2025-06-04T03:40:43.000Z
}
Retrieved user: {
id: 2,
username: 'ambermoe',
email: 'amber@example.com',
password_hash: 'hashed_password_here',
created_at: 2025-06-04T03:40:43.000Z,
updated_at: 2025-06-04T03:40:43.000Z
}
说明
在实际项目中,请确保:
- 密码必须经过加密处理(如使用 bcrypt)
- 处理可能出现的错误情况
- 使用环境变量管理数据库连接信息
- 添加适当的输入验证