首頁 > web前端 > js教程 > 了解使用遷移的 Prisma 工作流程

了解使用遷移的 Prisma 工作流程

王林
發布: 2024-07-18 04:31:30
原創
994 人瀏覽過

Entendendo o Fluxo de Trabalho do Prisma Utilizando Migrations

Prisma 是一種現代 ORM(物件關聯映射),可促進 Node.js 和 TypeScript 應用程式中與資料庫的互動。 Prisma 最重要的功能之一是遷移系統,它允許您保持資料庫架構與應用程式的資料模型同步。在這篇文章中,我們將探索使用遷移的 Prisma 工作流程。

什麼是遷移?

遷移是一種以系統化和版本化的方式控制和應用資料庫模式變更的方法。它們允許您以增量和可逆的方式定義資料庫的結構更改,例如建立或更改表。

Prisma 遷移工作流程

Prisma 中遷移的典型工作流程涉及以下步驟:

  1. 安裝與初始設定
  2. 方案定義
  3. 建立遷移
  4. 移民申請
  5. 遷移管理

第 1 步:安裝和初始配置

首先,我們需要在專案中安裝Prisma並初始化:

npm install @prisma/client
npx prisma init

登入後複製

此指令建立一個包含 schema.prisma 檔案的 prism 目錄,我們在其中定義資料模型。

第 2 步:架構定義

在 schema.prisma 檔案中,我們定義表示資料庫表的模型。例如,讓我們定義一個模型 User:

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

登入後複製

在這裡,我們定義一個包含 id、email 和 name 欄位的 User 表。

第 3 步:建立遷移

定義或更改架構後,我們建立一個遷移以反映資料庫中的這些變更:

npx prisma migrate dev --name init

登入後複製

migrate dev 指令建立一個新的遷移並將變更套用到資料庫。 --name 參數可讓您為遷移指定描述性名稱,例如上面範例中的 init。

第四步:移民申請

當我們使用 migrate dev 指令時,遷移會自動套用到資料庫。這可確保資料庫始終與 schema.prisma 中定義的資料模型同步。

如果您想在生產環境中套用遷移,請使用指令:

npx prisma migrate deploy

登入後複製

此指令將所有掛起的遷移套用到生產資料庫。

第5步:遷移管理

Prisma 保留應用於資料庫的所有遷移的歷史記錄。這對於追蹤更改並在必要時恢復遷移非常有用。要查看遷移歷史,您可以使用:

npx prisma migrate status

登入後複製

此指令顯示遷移的目前狀態,包括哪些遷移已套用,哪些遷移正在等待。

實際例子

讓我們來看一個實際範例,了解如何在使用者模型中新增欄位並為此變更建立遷移。

  1. 將欄位加入 schema.prisma 中的使用者模型:

    model User {
      id        Int     @id @default(autoincrement())
      email     String  @unique
      name      String?
      birthdate DateTime?
    }
    
    
    登入後複製
  2. 建立新遷移:

    npx prisma migrate dev --name add-birthdate-to-user
    
    
    登入後複製
  3. 應用遷移:

    migrate dev 指令已經將遷移應用到資料庫。現在資料庫將在用戶表中新增新的生日欄位。

  4. 檢查遷移狀態:

    npx prisma migrate status
    
    
    登入後複製

    此指令將顯示新增出生日期到使用者遷移已成功套用。

結論

Prisma 使用遷移的工作流程是管理資料庫架構變更的高效且安全的方法。透過一系列清晰的步驟——定義模式、建立遷移、應用變更和管理遷移歷史記錄——可以使資料庫與應用程式的資料模型保持同步,從而促進軟體的開發和維護。

使用 Prisma,您不僅可以簡化資料庫管理,而且還獲得了一個強大的工具來確保所有變更都是可追蹤和可逆的,從而有助於實現更強大和敏捷的開發流程。

以上是了解使用遷移的 Prisma 工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板