Prisma 避坑指南!

这篇具有很好参考价值的文章主要介绍了Prisma 避坑指南!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 环境变量问题
datasource db {
  provider     = "mysql"
  url          = env("DATABASE_URL")
}
  1. npx prisma db push 默认取 .env 配置文件,那多环境怎么处理?

  2. 增加 .env.test .env.prod 等文件, 安装 dotenv-cli ,执行 dotenv -e .env.test -- npx prisma db push 来指定 prisma 的运行环境

  3. 实际项目中与 nodejs (koa、egg、midway、nest)等框架结合使用时,如 midway.js ,包含内置配置文件为 config.test.ts 启动使用 NODE_ENV 来指定环境变量 ,启动命令如下 cross-env NODE_ENV=test pm2 start ./bootstrap.js --name=midway-app -i 2 。那么怎么让 prisma 知道是 test 环境呢?

  4. 执行命令 dotenv -e .env.test -- cross-env NODE_ENV=test pm2 start ./bootstarp.js --name=midway-app -i 2

  • Prisma ORM 创建关系型数据库时,如何不创建外键,依然能够关联查询?

    • 很简单,增加 relationMode = "prisma",选择prisma模式。 注意索引 @@index()
    datasource db {
      provider     = "mysql"
      url          = env("DATABASE_URL")
      relationMode = "prisma"
    }
    
    model User {
      id                   String            @id @default(uuid())
      roleId               String?
      role                 UserRole?         @relation(fields: [roleId], references: [id])
    
      @@index([roleId])
      @@map("user_admin")
    }
    
    model UserRole {
      id        String     @id @default(uuid())
      code      String     @db.VarChar(32)
      name      String     @db.VarChar(32)
      User      User[]
        
      @@map("user_role")
    }
    
    
  • Prisma 使用 @createAt@updateAt 时差问题怎么解决?(这里是mysql,其它应该同理)

    • prisma 使用了 @createAt@updateAt 在其引擎内部处理时,同一处理成了 UTC 时间格式,也就是比北京时间慢 8个小时。(mysql 、linux 时间均正常的情况下)

      • 可能引擎是国外开发的吧,想自动创建时间,以及修改自动更新时间的话,上面两种不能采取。使用如下方式取代:

        model Dept {
          id               Int                @id @default(autoincrement())
          name             String             @db.VarChar(255) 
          desc             String             @db.VarChar(255) 
          createAt         DateTime           @default(dbgenerated("NOW()")) @db.DateTime
          updateAt         DateTime           @default(dbgenerated("NOW() ON UPDATE NOW()")) @db.Timestamp(0)
          @@map("user_dept")
        }
        
        • 使用 NOW(),其实也就是 select now()的时间,
        • updateAtmysql 里面想自动更新的话,需要设置字段类型timestamp,字段值:CURRENT_TIMESTAMP,以及根据时间戳更新。这里转化成 prisma 语法如上 @default(dbgenerated("NOW() ON UPDATE NOW()")) @db.Timestamp(0)

如果有其它关于 prisma 的问题,欢迎一起探讨!文章来源地址https://www.toymoban.com/news/detail-511238.html

到了这里,关于Prisma 避坑指南!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 设置环境变量setenv命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 setenv命令是用于在Linux系统中设置环境变量的命令。环境变量是一种在操作系统中存储的键值对,用于存储系统配置信息、用户偏好设置以及程序运行所需的路径等信息。通过设置环境变量,可以方便地在不同的程序之间共享数据。 seten

    2024年02月08日
    浏览(55)
  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 置环境变量 export命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 export命令是Linux中的一个内建命令,用于设置环境变量。环境变量是在操作系统中用于存储各种配置信息的一种机制。通过设置环境变量,可以影响系统的行为和程序的运行。 使用export命令,可以将一个变量从当前shell传递到子shell或其他

    2024年02月05日
    浏览(69)
  • 解决分类变量问题的完整指南:处理方式及技巧

    本指南探讨了处理分类变量的不同方法,包括标签编码、二值化和独热编码,并比较了它们在内存占用上的差异。了解如何优化分类变量处理,提高模型性能。

    2024年02月22日
    浏览(35)
  • 香橙派/树莓派 电脑linux 电赛备赛指南-opencv全过程最简安装,ssh,vnc,USB摄像头驱动和配置环境避坑,手把手教学。opencv视觉入门(一)

    老早就想写博客了把之前的项目都记录下来,但是一直碍于每次做完项目都挺累的,于是就偷懒没写,不过每次做完都有总结,现在已经大三了,觉得应该把自己之前学习过程中遇到的经验或者坑写出来,后面会陆陆续续的发出来,今天先来讲一下有关这份博客的前提背景吧

    2024年04月08日
    浏览(51)
  • 苹果开发初学者指南:Xcode 如何为运行的 App 添加环境变量(Environmental Variable)

    Xcode 15 在运行 SwiftUI 代码时突然报告如下警告: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. 不仅如此,Xcode 调试控制台中还提示我们需要添加特定的环境变量以进一步与该错误“

    2024年04月24日
    浏览(37)
  • Mac环境变量问题

    查询环境变量 查询当前使用的Shell,这里注意SHELL需要大写 如果输出的是/bin/zsh,说明使用的是zsh。 zsh读取的个人配置文件是~/.zshrc (mac10.15.x 后对应的是~/.zprofile) 如果输出的是/bin/bash,说明使用的是bash。 bash读取的个人配置文件是~/.bash_profile 另外,还有两个系统级的环境 

    2024年02月14日
    浏览(32)
  • Docker迁移以及环境变量问题

    将docker容器通过docker export命令打包,传输到另外的服务器,再通过docker import命令导入后,发现原来docker容器中的环境变量失效了。 export LD_LIBRARY_PATH=/home/shared/TensorRT-8.2.4.2/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64 显然,export命令配置的环境变量只能临时生效,重新进入容器后环

    2024年02月11日
    浏览(52)
  • MSELoss详解+避坑指南

    loss(xi,yi)=(xi−yi)2 loss(xi,yi)=(xi−yi)2 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。 (1)如果 red

    2024年02月05日
    浏览(48)
  • ES避坑指南

    分片是一个功能完整的搜索引擎,它拥有使用一个节点上的所有资源的能力。 索引一旦创建分片数量就已经确定,且不可更改,默认为5个分片,每个分片有1个副本 _index: 索引名,这个名字必须小写,不能以下划线开头,不能包含逗号 _type: 索引下的逻辑分区 一个 _type 命名可

    2023年04月09日
    浏览(39)
  • 数据结构入门指南:链表(新手避坑指南)

    目录 前言 1.链表 1.1链表的概念  1.2链表的分类 1.2.1单向或双向 1.2.2.带头或者不带头 1.2.33. 循环或者非循环 1.3链表的实现  定义链表 总结         前边我们学习了顺序表,顺序表是数据结构中最简单的一种线性数据结构,今天我们来学习链表,难度相较于顺序表会大幅增

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包