Prisma 尚不支持地理空间列。我需要向我的数据库添加一个 mySQL
GEOMETRY
类型列。我可以编写自定义迁移,但 Prisma 的重点是管理我的迁移。
如何在 Prisma 架构文件中指定自定义列类型?可以是特定于 mySQL 的。
截至 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 文档或最新来源,看看在处理自定义列类型方面是否有任何更改或改进。