首页 > 解决方案 > 如何使 @unique 指令在 datamodel.prisma 中工作?

问题描述

所以我刚开始使用 Prisma,我试图在 datamodel.prisma 中添加一个电子邮件字段(这是一个必需的字符串)。它工作得很好,但我也想给它@unique 指令,它并没有真正起作用。

我正在学习视频课程,但我和讲师的文件不匹配,他有一个 datamodel.graphql 文件,而我的是 datamodel.prisma,我认为这可能是原因并尝试手动将其更改为 datamodel.graphql 但之后我什至不能在终端中使用 prisma deploy。

我希望不能添加具有相同电子邮件的用户,它不会给我任何错误消息,但是可以创建具有相同电子邮件的用户。

将不胜感激有关此问题的任何帮助。

标签: graphqlprisma

解决方案


我遇到过同样的问题。

使用 Windows 10 和 MariaDB (XAMPP)。我还添加了@unique 指令——表中已经有一些用户——并且仍然可以添加具有相同电子邮件地址的用户,而不会在控制台中显示任何错误消息。然而,当我打开 Docker Desktop 应用程序时,我看到了很多关于重复条目(电子邮件)的错误消息。重新部署 prisma 似乎在终端中有效,但实际上并非如此。

@realAlexBarge 的回答让我朝着正确的方向前进:

“还要注意实际部署了新数据模型。如果您与现有数据发生冲突,则可能需要使用强制标志来覆盖现有模式(如果需要)。”

所以我最后做了什么:

  1. 停止码头工人
docker-compose down -v --rmi all --remove-orphans
  1. 从数据库中删除所有表 - 可能“用户”和“迁移”就足够了。看起来“迁移”表会跟踪您的架构
  2. 重新启动泊坞窗
docker-compose up -d
  1. 重新部署的棱镜
prisma deploy

希望能帮助到你。


推荐阅读