如何在團隊中管理模式變更
10 分鐘
簡介
在團隊協作中,管理資料庫模式變更可能具有挑戰性。本指南將向你展示如何使用 Prisma Migrate 有效地協作進行模式變更,確保所有團隊成員都能安全地貢獻和整合模式變更。
先決條件
在開始本指南之前,請確保你已具備
- 已安裝 Node.js(版本 18 或更高)
- 已設定好遷移的 Prisma 專案
- 關係型資料庫(PostgreSQL, MySQL, SQLite, SQL Server 等)
- 對 Git 有基本瞭解
- 對 Prisma Migrate 有基本熟悉
1. 瞭解遷移基礎知識
1.1. 遷移順序
遷移**按照建立順序應用**。建立日期是遷移子資料夾名稱的一部分——例如,`20210316081837-updated-fields` 是在 `2021-03-16-08:18:37` 建立的。
1.2. 版本控制要求
你應該將以下檔案提交到版本控制
.prisma/migrations資料夾的內容,包括migration_lock.toml檔案- Prisma Schema (
schema.prisma)
僅僅對 schema.prisma 檔案進行版本控制是不夠的——你必須包含你的遷移歷史,因為
- 自定義遷移包含無法在 Prisma schema 中表示的資訊
prisma migrate deploy命令只執行遷移檔案
2. 整合團隊變更
2.1. 拉取最新變更
要整合來自協作者的變更
- 拉取已更改的 Prisma schema 和
./prisma/migrations資料夾 - 執行遷移命令
npx prisma migrate dev
2.2. 示例場景
讓我們透過一個三位開發人員共享模式變更的示例場景來了解
- 之前
- 之後
schema.prisma
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
schema.prisma
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
favoriteColor String? // Added by Ania
bestPacmanScore Int? // Added by you
posts Post[]
}
// Added by Javier
model Tag {
tagName String @id
tagCategory Category
}
3. 處理併發變更
3.1. 開發者 A 的變更
Ania 添加了一個新欄位
model User {
/* ... */
favoriteColor String?
}
並生成了一個遷移
npx prisma migrate dev --name new-field
3.2. 開發者 B 的變更
Javier 添加了一個新模型
model Tag {
tagName String @id
tagCategory Category
}
並生成了一個遷移
npx prisma migrate dev --name new-model
3.3. 合併變更
遷移歷史現在有兩個新的遷移

4. 整合你的變更
4.1. 拉取團隊變更
-
拉取最新變更
- 兩個新遷移
- 更新的模式檔案
-
審查合併後的模式
model User {
/* ... */
favoriteColor String?
bestPacmanScore Int?
}
model Tag {
tagName String @id
tagCategory Category
posts Post[]
}
4.2. 生成你的遷移
執行遷移命令
npx prisma migrate dev
這將
- 應用你的團隊的遷移
- 為你的變更建立一個新遷移
- 應用你的新遷移
4.3. 提交變更
提交
- 合併後的
schema.prisma - 你的新遷移檔案
下一步
現在你已經瞭解了團隊模式管理,你可以
更多資訊
與 Prisma 保持聯絡
透過以下方式繼續你的 Prisma 之旅 我們的活躍社群。保持瞭解,參與其中,並與其他開發者協作
- 在 X 上關注我們 獲取公告、直播活動和實用提示。
- 加入我們的 Discord 提問、與社群交流,並透過對話獲得積極支援。
- 在 YouTube 上訂閱 觀看教程、演示和直播。
- 在 GitHub 上互動 透過標星倉庫、報告問題或為問題貢獻。