graphql - 如何使 @unique 指令在 datamodel.prisma 中工作?
问题描述
所以我刚开始使用 Prisma,我试图在 datamodel.prisma 中添加一个电子邮件字段(这是一个必需的字符串)。它工作得很好,但我也想给它@unique 指令,它并没有真正起作用。
我正在学习视频课程,但我和讲师的文件不匹配,他有一个 datamodel.graphql 文件,而我的是 datamodel.prisma,我认为这可能是原因并尝试手动将其更改为 datamodel.graphql 但之后我什至不能在终端中使用 prisma deploy。
我希望不能添加具有相同电子邮件的用户,它不会给我任何错误消息,但是可以创建具有相同电子邮件的用户。
将不胜感激有关此问题的任何帮助。
解决方案
我遇到过同样的问题。
使用 Windows 10 和 MariaDB (XAMPP)。我还添加了@unique 指令——表中已经有一些用户——并且仍然可以添加具有相同电子邮件地址的用户,而不会在控制台中显示任何错误消息。然而,当我打开 Docker Desktop 应用程序时,我看到了很多关于重复条目(电子邮件)的错误消息。重新部署 prisma 似乎在终端中有效,但实际上并非如此。
@realAlexBarge 的回答让我朝着正确的方向前进:
“还要注意实际部署了新数据模型。如果您与现有数据发生冲突,则可能需要使用强制标志来覆盖现有模式(如果需要)。”
所以我最后做了什么:
- 停止码头工人
docker-compose down -v --rmi all --remove-orphans
- 从数据库中删除所有表 - 可能“用户”和“迁移”就足够了。看起来“迁移”表会跟踪您的架构
- 重新启动泊坞窗
docker-compose up -d
- 重新部署的棱镜
prisma deploy
希望能帮助到你。
推荐阅读
- datagrid - 如何在大型分页网格/表格上开发“检查全部”功能
- apache-spark - 透明流和批处理
- java - 如何使用 Jackson 的 ObjectMapper 将以下 JSON 转换为 POJO
- excel - Excel 显示按钮但说它们不存在
- android - 如何使用 ConstraintLayout Barrier 将视图定位到其他视图的右侧?
- node.js - AWS 中主机节点项目的平均成本
- notepad++ - 用唯一编号替换记事本++
- javascript - 通过作为道具传递的方法从状态数组中删除元素
- javascript - 我无法启用选择
- javascript - 使用系列数据,但在列的顶部显示自定义文本 Highchart