文、意如
目前已有Next.js專案,接下來要安裝Prisma並設定MySQL
安裝 Prisma 和 MySQL 驅動
npm install prisma --save-dev

npm install @prisma/client

npm install mysql2

初始化 Prisma
npx prisma init

這會產生:
prisma/
  └── schema.prisma
.env

修正 schema.prisma 裡的 generator 區塊
請打開 prisma/schema.prisma,把這段:
generator client {
  provider = "prisma-client-js"
  output   = "../generated/prisma"
}
改成這樣(建議使用預設路徑):
generator client {
  provider = "prisma-client-js"
}
這樣 Prisma 會把 @prisma/client 產生在 node_modules/ 下,
而不是自訂的 generated/prisma,這樣不會出錯。
重新生成 Prisma Client
npx prisma generate
重新啟動一次
npm run dev
 
設定資料庫連線
打開 .env,修改成你的 MySQL 資料庫連線資訊:
DATABASE_URL="mysql://root:密碼@localhost:3306/你的資料庫名稱"
將資料來源 provider 改為 MySQL
修改prisma/schema.prisma
datasource db {
-  provider = "postgresql"
+  provider = "mysql"
  url      = env("DATABASE_URL")
}
第四步:設計 News "最新消息"資料表欄位
model News {
  id          Int      @id @default(autoincrement()) // PK,自動遞增
  title       String                                   // 最新消息標題
  image       String?                                  // 圖片(可為空)
  content     String                                   // 內容
  createdBy   String                                   // 建立者
  createdAt   DateTime @default(now())                 // 建立時間
  updatedBy   String?                                  // 更新者(可為空)
  updatedAt   DateTime?                                // 更新時間(可為空)
}
在 Prisma 裡,
? 表示這個欄位是「可為 null」的(也就是「非必填」)。
image String @default("")  是字串,不會是 null,預設為空字串
第五步:同步資料庫
npx prisma db push
這會根據 model 幫你建立或更新 MySQL 的資料表結構。


Yiru@Studio - 關於我 - 意如