首页 > 其他分享 >在serverless中使用prisma

在serverless中使用prisma

时间:2023-12-25 10:33:36浏览次数:47  
标签:serverless node prisma modules openssl js client 使用

在serverless中使用prisma

众所周知为了冷启动速度一般要将代码打包到一个js文件。

当在项目中使用了 prisma 打包完后上传到serverless平台,一般会遇到第一个问题:

 Error: 
 Invalid `prisma.companie.findMany()` invocation:
 
 
   Query engine binary for current platform "debian-openssl-1.1.x" could not be found.
 This probably happens, because you built Prisma Client on a different platform.
 (Prisma Client looked in "/home/ubuntu/nacho/server/node_modules/@prisma/client/runtime/query-engine-debian-openssl-1.1.x")
 
 
 To solve this problem, add the platform "debian-openssl-1.1.x" to the "generator" block in the "schema.prisma" file:
 generator client {
   provider      = "prisma-client-js"
   binaryTargets = ["native"]
 }
 
 Then run "prisma generate" for your changes to take effect.
 Read more about deploying Prisma Client: https://pris.ly/d/client-generator
     at PrismaClientFetcher.request (/home/ubuntu/nacho/server/node_modules/@prisma/client/runtime/index.js:79361:15)
     at process._tickCallback (internal/process/next_tick.js:68:7) clientVersion: '2.12.1' }

经过搜索后得知 prisma/issues/4769 ,prisma 在不同平台是依赖不同二进制文件的。

那么现在修改 prisma 配置重新生成代码再 编译打包上传运行 依旧会出现找不到该文件的问题。

例如:

PrismaClientInitializationError: Prisma Client could not locate the Query Engine for runtime "debian-openssl-1.1.x".

This is likely caused by a bundler that has not copied "libquery_engine-debian-openssl-1.1.x.so.node" next to the resulting bundle.
Ensure that "libquery_engine-debian-openssl-1.1.x.so.node" has been copied next to the bundle or in "node_modules/.pnpm/@[email protected][email protected]/node_modules/.prisma/client".

We would appreciate if you could take the time to share some information with us.
Please help us by answering a few questions: https://pris.ly/engine-not-found-bundler-investigation

The following locations have been searched:
  /code/node_modules/.pnpm/@[email protected][email protected]/node_modules/.prisma/client
  /
  D:\code\node_modules\.pnpm\@[email protected][email protected]\node_modules\@prisma\client
  /.prisma/client
  /tmp/prisma-engines
    at dl (/code/fc.js:170:805)
    at async Object.loadLibrary (/code/fc.js:217:9816)
    at async zt.loadEngine (/code/fc.js:219:448)
    at async zt.instantiateLibrary (/code/fc.js:218:10356) {
  clientVersion: '5.7.1',
  errorCode: undefined
}

现在需要从本地找到该文件 libquery_engine-debian-openssl-1.1.x.so.node

然后和代码一起上传,注意路径要和你编译后的代码中所依赖的一致

image

完结撒花

标签:serverless,node,prisma,modules,openssl,js,client,使用
From: https://www.cnblogs.com/szpq/p/use-prisma-in-serverless-z2gilly.html

相关文章

  • 无网络环境下安装fping(使用rpm方式安装fping)
    一、我的的Linux版本centos7(cat/proc/version)1、Linuxversion3.10.0-862.el7.x86_64([email protected])(gccversion4.8.520150623(RedHat4.8.5-28)(GCC))#1SMPFriApr2016:44:24UTC20182、压缩包二、使用压缩包安装gcc版本(4.8.5)(参考文章:......
  • 在Python中实现ESG(环境、社会、治理)因子的交易策略,我们可以使用pandas库来读取数据,并
    在Python中实现ESG(环境、社会、治理)因子的交易策略,我们可以使用pandas库来读取数据,并使用AlphaVantage提供的API来获取股票价格数据²。以下是一个简单的代码示例:importpandasaspdimportrequests#获取股票价格数据response=requests.get(alpha_vantage_url)data=res......
  • 互联网使用的网络协议有哪些?
    1、TCP/IP协议2、HTTP协议3、UDP协议:不提供可靠性和顺序性。4、FTP协议:用于文件的上传和下载。5、DNS协议:用于将域名转换为IP地址。6、DHCP协议:用于自动分配IP地址和其他网络配置信息。7、Telnet协议:用于在网络上远程登录到其他计算机。8、SSH协议:更加安全的远程登录方式。9、SSL/T......
  • C++ /内存文件使用例程
    ///c++内存文件使用例程classMemoryBuffer:publicstd::strstreambuf{public:usingBase=std::basic_streambuf<char>;usingchar_type=typenameBase::char_type;MemoryBuffer(char*buf,size_tlen):std::strstreambuf(buf,l......
  • Python类的使用
    在Python中,类(Class)是用于创建对象(object)的蓝图。类提供了对象的属性(数据)和方法(操作数据的函数)的定义。使用类可以帮助你创建具有相同属性和方法的多个对象,这是面向对象编程(OOP)的一个核心概念。类的定义与使用定义一个类:类以class关键字开始,后跟类名和冒号:。类名通常使用大驼峰命......
  • 使用FORCE INDEX强制使用索引。
    优化前SELECTm.id,m.channel_id,m.sender_id,m.create_at,m.type,m.content,m.file_id,m.create_at,u.name,u.nickname,u.online_status,u.avatar_url,u.name_first_letter,f.nameASfile_name,f.extension,f.size,f.mime_typ,f.width,f.height,f.path,f.thumb_width,f.thumb......
  • powershell中使用hyper-v 命令代码
    PowerShell中使用Hyper-V挂载、分离、创建和格式化VHD的代码:挂载VHD文件:powershell#挂载VHD文件Mount-VHD-Path"C:\test\disk.vhd"分离VHD文件:powershell#分离VHD文件Dismount-VHD-Path"C:\test\disk.vhd"创建VHD文件:powershell#创建10GB的VHD文件,并存......
  • IIS下使用SSL证书
    IIS下使用SSL证书    本文介绍windowsServer下SSL证书配置及IIS站点配置1.   生成SSL证书    在阿里云申请免费SSL证书    登录阿里云管理控制台,打开SSL证书管理     选择免费证书,点击创建证书。      突然发现阿里去免费证书......
  • 在Idea中使用Vim可太牛了!
    写在前面最近看到了一篇《IDEA+VIM,竟可以这么牛逼!》的文章,博主介绍了如何在Idea中使用Vim,这让自己感觉十分的惊喜。惊的是:原来Vim和IDEA是可以集成到一起的,可以兼用两者的优点提高开发效率。喜的是:终于又可以重拾Vim了,因为以前写C++的时候经常使用Vim做coding,Vim入门可吃了不少......
  • 数据库使用
     这里是本地获取数据库  找到数据库名字 以及用户密码啥的   获得指定表的id属性  通过id进行查找表中 该id的信息  利用id修改指定数据  通过id删除表 添加 对照表的信息 进行添加因为id是自增所以不需要加......