首頁  >  問答  >  主體

如何在Prisma中指定自訂列類型?

<p>Prisma目前還不支援地理空間列。我需要在我的資料庫中新增一個MySQL <code>GEOMETRY</code>類型的欄位。我可以編寫一個自訂遷移,但Prisma的整個目的是管理我的遷移。 </p> <p>在Prisma模式檔案中,如何指定自訂列類型?可以是MySQL特定的。 </p>
P粉604848588P粉604848588428 天前486

全部回覆(1)我來回復

  • P粉851401475

    P粉8514014752023-08-19 00:03:48

    根據我在2021年9月的最新知識更新,Prisma不直接支援自訂列類型在模式中。但是,您可以透過在模式中使用“Raw” SQL欄位來繞過此限制。這樣可以為特定欄位編寫自訂的SQL程式碼,有效控制Prisma不原生支援的欄位類型。 在您的情況下,您想要新增一個MySQL GEOMETRY類型的資料列,您可以在Prisma模式中定義一個原始的SQL欄位。以下是您可能如何實現的範例: ``` model YourModel { id Int @id @default(autoincrement()) name String geom String @map("geometry_column_name") @db.VarChar(255) // 依需求調整長度 } ``` 在這個範例中,`geom`字段被定義為一個`String`字段,使用`@map`進行自訂的SQL映射。 `@db.VarChar(255)`屬性用於指定資料庫中的實際欄位類型(在這種情況下,MySQL的長度為255的VARCHAR)。您應該將`"geometry_column_name"`替換為您想要使用的實際欄位名稱。 請注意,儘管這種方法允許您定義自訂列類型並使用Prisma管理的遷移,但它可能不提供Prisma的類型安全性和驗證的所有好處。此外,自上次更新以來,Prisma的功能和能力可能已經發生了變化,因此我建議查看官方的Prisma文件或最新的資源,以了解在處理自訂列類型方面是否有任何變化或改進

    回覆
    0
  • 取消回覆