跳到主要內容

如何從 TypeORM 遷移到 Prisma ORM

15 分鐘

簡介

本指南將向您展示如何將應用程式從 TypeORM 遷移到 Prisma ORM。我們將使用 TypeORM Express 示例 的擴充套件版本作為 示例專案 來演示遷移步驟。

本遷移指南使用 PostgreSQL 作為示例資料庫,但它同樣適用於任何其他 Prisma ORM 支援的關係型資料庫。您可以在Prisma ORM 與 TypeORM 頁面上了解 Prisma ORM 與 TypeORM 的比較。

先決條件

在開始本指南之前,請確保您已具備

  • 要遷移的 TypeORM 專案
  • 已安裝 Node.js(版本 16 或更高)
  • PostgreSQL 或其他支援的資料庫
  • 對 TypeORM 和 Express.js 有基本瞭解

2. 準備遷移

2.1. 理解遷移過程

無論您正在構建何種型別的應用程式或 API 層,從 TypeORM 遷移到 Prisma ORM 的步驟始終相同

  1. 安裝 Prisma CLI
  2. 內省您的資料庫
  3. 建立基線遷移
  4. 安裝 Prisma Client
  5. 逐步使用 Prisma Client 替換您的 TypeORM 查詢

這些步驟適用於您正在構建 REST API(例如,使用 Express、Koa 或 NestJS)、GraphQL API(例如,使用 Apollo Server、TypeGraphQL 或 Nexus)或任何其他使用 TypeORM 進行資料庫訪問的應用程式。

2.2. 設定 Prisma 配置

建立新的 Prisma 模式檔案

npx prisma init --output ../generated/prisma

使用您的資料庫連線字串更新 .env 檔案中的 DATABASE_URL

DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE"

3. 遷移資料庫模式

3.1. 內省您的資料庫

執行 Prisma 的內省以從現有資料庫建立 Prisma 模式

npx prisma db pull

這將建立一個包含您的資料庫模式的 schema.prisma 檔案。

3.2. 建立基線遷移

建立並應用基線遷移以標記資料庫的當前狀態

npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > baseline.sql
npx prisma migrate resolve --applied "baseline"

4. 更新您的應用程式程式碼

4.1. 安裝 Prisma Client

安裝 Prisma Client 包

npm install @prisma/client

生成 Prisma Client

npx prisma generate

4.2. 替換 TypeORM 查詢

開始使用 Prisma Client 替換您的 TypeORM 查詢。以下是一些常見查詢的轉換示例

// Find one
const user = await userRepository.findOne({
where: { id: 1 }
});

// Create
const user = await userRepository.save({
email: 'alice@prisma.io',
name: 'Alice'
});

// Update
await userRepository.update(1, {
name: 'New name'
});

// Delete
await userRepository.delete(1);

4.3. 更新您的控制器

更新您的 Express 控制器以使用 Prisma Client。例如,以下是如何更新 CreateUserAction

import { prisma } from '../client'

export class CreateUserAction {
async run(req: Request, res: Response) {
const { email, name } = req.body

const result = await prisma.user.create({
data: {
email,
name,
},
})

return res.json(result)
}
}

5. 測試和部署

5.1. 測試您的更改

測試所有已遷移的端點,確保它們按預期工作

npm test

5.2. 部署您的更改

  1. 部署您的模式更改
npx prisma migrate deploy
  1. 部署帶有更新依賴項的應用程式程式碼。

下一步

現在您已遷移到 Prisma ORM,您可以

  • 使用 Prisma 強大的查詢 API 新增更復雜的查詢
  • 設定 Prisma Studio 進行資料庫管理
  • 實現資料庫監控
  • 使用 Prisma 的測試工具新增自動化測試

瞭解更多資訊


與 Prisma 保持聯絡

透過以下方式繼續您的 Prisma 之旅 我們活躍的社群。隨時瞭解情況,參與其中,並與其他開發者協作

我們真誠地重視您的參與,並期待您成為我們社群的一員!

© . This site is unofficial and not affiliated with Prisma Data, Inc.