如何在 Prisma 中指定自定义列类型?

问题描述 投票:0回答:1

Prisma 尚不支持地理空间列。我需要向我的数据库添加一个 mySQL

GEOMETRY
类型列。我可以编写自定义迁移,但 Prisma 的重点是管理我的迁移。

如何在 Prisma 架构文件中指定自定义列类型?可以是特定于 mySQL 的。

mysql geometry migration geospatial prisma
1个回答
0
投票

截至 2021 年 9 月我的最后一次知识更新,Prisma 不支持直接在架构中自定义列类型。但是,您可以通过在架构中使用“原始”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) // Adjust the length as needed
}

在此示例中,

geom
字段定义为具有使用
String
的自定义 SQL 映射的
@map
字段。
@db.VarChar(255)
属性用于指定数据库中的实际列类型(在本例中为MySQL的长度为255的VARCHAR)。您应该将
"geometry_column_name"
替换为您要使用的实际列名称。

请记住,虽然此方法允许您定义自定义列类型并使用 Prisma 管理的迁移,但它可能无法提供 Prisma 类型安全和验证的所有优势。此外,自上次更新以来,Prisma 的特性和功能可能有所发展,因此我建议检查官方 Prisma 文档或最新来源,看看在处理自定义列类型方面是否有任何更改或改进。

© www.soinside.com 2019 - 2024. All rights reserved.