首页  >  问答  >  正文

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

<p>Prisma目前还不支持地理空间列。我需要在我的数据库中添加一个MySQL <code>GEOMETRY</code>类型的列。我可以编写一个自定义迁移,但Prisma的整个目的是管理我的迁移。</p> <p>在Prisma模式文件中,如何指定自定义列类型?可以是MySQL特定的。</p>
P粉604848588P粉604848588428 天前483

全部回复(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
  • 取消回复