Prisma 是一種現代 ORM(物件關聯映射),可促進 Node.js 和 TypeScript 應用程式中與資料庫的互動。 Prisma 最重要的功能之一是遷移系統,它允許您保持資料庫架構與應用程式的資料模型同步。在這篇文章中,我們將探索使用遷移的 Prisma 工作流程。
遷移是一種以系統化和版本化的方式控制和應用資料庫模式變更的方法。它們允許您以增量和可逆的方式定義資料庫的結構更改,例如建立或更改表。
Prisma 中遷移的典型工作流程涉及以下步驟:
首先,我們需要在專案中安裝Prisma並初始化:
npm install @prisma/client npx prisma init
此指令建立一個包含 schema.prisma 檔案的 prism 目錄,我們在其中定義資料模型。
在 schema.prisma 檔案中,我們定義表示資料庫表的模型。例如,讓我們定義一個模型 User:
model User { id Int @id @default(autoincrement()) email String @unique name String? }
在這裡,我們定義一個包含 id、email 和 name 欄位的 User 表。
定義或更改架構後,我們建立一個遷移以反映資料庫中的這些變更:
npx prisma migrate dev --name init
migrate dev 指令建立一個新的遷移並將變更套用到資料庫。 --name 參數可讓您為遷移指定描述性名稱,例如上面範例中的 init。
當我們使用 migrate dev 指令時,遷移會自動套用到資料庫。這可確保資料庫始終與 schema.prisma 中定義的資料模型同步。
如果您想在生產環境中套用遷移,請使用指令:
npx prisma migrate deploy
此指令將所有掛起的遷移套用到生產資料庫。
Prisma 保留應用於資料庫的所有遷移的歷史記錄。這對於追蹤更改並在必要時恢復遷移非常有用。要查看遷移歷史,您可以使用:
npx prisma migrate status
此指令顯示遷移的目前狀態,包括哪些遷移已套用,哪些遷移正在等待。
讓我們來看一個實際範例,了解如何在使用者模型中新增欄位並為此變更建立遷移。
將欄位加入 schema.prisma 中的使用者模型:
model User { id Int @id @default(autoincrement()) email String @unique name String? birthdate DateTime? }
建立新遷移:
npx prisma migrate dev --name add-birthdate-to-user
應用遷移:
migrate dev 指令已經將遷移應用到資料庫。現在資料庫將在用戶表中新增新的生日欄位。
檢查遷移狀態:
npx prisma migrate status
此指令將顯示新增出生日期到使用者遷移已成功套用。
Prisma 使用遷移的工作流程是管理資料庫架構變更的高效且安全的方法。透過一系列清晰的步驟——定義模式、建立遷移、應用變更和管理遷移歷史記錄——可以使資料庫與應用程式的資料模型保持同步,從而促進軟體的開發和維護。
使用 Prisma,您不僅可以簡化資料庫管理,而且還獲得了一個強大的工具來確保所有變更都是可追蹤和可逆的,從而有助於實現更強大和敏捷的開發流程。
以上是了解使用遷移的 Prisma 工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!