跳至主要內容

如何從 TypeORM 遷移至 Prisma ORM

15 分鐘

簡介

本指南說明如何將您的應用程式從 TypeORM 遷移至 Prisma ORM。我們將使用 TypeORM Express 範例 的擴展版本作為 範例專案,以示範遷移步驟。

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

先決條件

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

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

2. 準備遷移

2.1. 了解遷移過程

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

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

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

2.2. 設定 Prisma 配置

建立新的 Prisma schema 檔案

npx prisma init

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

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

3. 遷移資料庫 schema

3.1. 內省您的資料庫

執行 Prisma 的內省功能,從您現有的資料庫建立 Prisma schema

npx prisma db pull

這將建立一個包含您的資料庫 schema 的 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 查詢

開始將您的 TypeORM 查詢替換為 Prisma Client。以下是如何轉換一些常見查詢的範例

// 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. 部署您的 schema 變更
npx prisma migrate deploy
  1. 使用更新的依賴項部署您的應用程式碼。

後續步驟

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

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

如需更多資訊和更新