解决prisma国内部署失败Downloading Prisma engines for Node-API for rhel-openssl-1.1.x

当在国内部署prisma时经常会因为网络或者其他原因出现下载prisma引擎失败问题:

> Downloading Prisma engines for Node-API for rhel-openssl-1.1.x [                    ] 0%Error: request to https://binaries.prisma.sh/all_commits/659ef412370fa3b41cd7bf6e94587c1dfb7f67e7/rhel-openssl-1.1.x/libquery_engine.so.node.gz.sha256 failed, reason: connect EINVAL 0.0.254.149:80 - Local (0.0.0.0:0)

这时候就需要我们手动下载到本地,然后通过环境变量来指定引擎相关库的地址:

1. 下载

wget可用时,如果不可用则本地下载后上传至服务器

在需要存放引擎地址的目录(如/home/prisma_engines)下执行一下代码下载库:

wget https://binaries.prisma.sh/all_commits/473ed3124229e22d881cb7addf559799debae1ab/rhel-openssl-1.1.x/libquery_engine.so.node.gz
wget  https://binaries.prisma.sh/all_commits/659ef412370fa3b41cd7bf6e94587c1dfb7f67e7/rhel-openssl-1.1.x/migration-engine.gz
wget  https://binaries.prisma.sh/all_commits/659ef412370fa3b41cd7bf6e94587c1dfb7f67e7/rhel-openssl-1.1.x/prisma-fmt.gz
wget  https://binaries.prisma.sh/all_commits/659ef412370fa3b41cd7bf6e94587c1dfb7f67e7/rhel-openssl-1.1.x/query-engine.gz

2. 解压

这时候在该目录下会出现以上四个文件的.gz压缩包,这时候我们需要解压它们(在上面下载目录下执行):

gzip -dk libquery_engine.so.node.gz
gzip -dk migration-engine.gz
gzip -dk prisma-fmt.gz
gzip -dk query-engine.gz

3. 授权

给这几个解压后的文件授权;
如果是宝塔面板的话,就直接右键权限,选择www用户,授权755;
如果没有面板的话可以通过命令行授权(在上面下载目录下执行):

chmod +755 libquery_engine.so.node
chmod +755 migration-engine
chmod +755 prisma-fmt
chmod +755 query-engine

4. 设置环境变量

把上面这几个文件设置在环境变量中,编辑.bash_profile文件,当然其他环境变量文件也行(以下操作在 ~/ 文件夹下)

cd ~/
vim .bash_profile

然后把下面代码插入最后,其中ENGINE_DIR为上面存放引擎文件的目录

ENGINE_DIR="/home/prisma_engines"
export PRISMA_QUERY_ENGINE_LIBRARY="${ENGINE_DIR}/libquery_engine.so.node"
export PRISMA_QUERY_ENGINE_BINARY="${ENGINE_DIR}/query-engine"
export PRISMA_SCHEMA_ENGINE_BINARY="${ENGINE_DIR}/migration-engine"
export PRISMA_FMT_BINARY="${ENGINE_DIR}/prisma-fmt"

然后执行 source .bash_profile 文件使之生效

5. 执行查看是否正常启动

返回项目目录执行需要的命令查看是否生效,如:npx prisma generate

参考:
github/prisma/discussions

评论

  1. yellow
    Linux Chrome 124.0.0.0
    5 月前
    2024-6-17 14:22:25
    1. 应为chmod,而不是chomd
    2. 需要修改权限的是解压后的文件;
      chmod +755 libquery_engine.so.node
      chmod +755 migration-engine
      chmod +755 prisma-fmt
      chmod +755 query-engine
    • 博主
      yellow
      Windows Edge 125.0.0.0
      已编辑
      5 月前
      2024-6-17 14:34:00

      感谢指正,已修改!
      马虎大意了😂

  2. mhlfywx
    Windows Chrome 124.0.0.0
    7 月前
    2024-5-02 18:42:30

    为啥我还是不行。运行npx prisma migrate deploy。会出现:Error: Schema engine exited. Error: Command failed with EACCES: /home/prisma_engines/migration-engine cli --datasource can-connect-to-database
    spawn /home/prisma_engines/migration-engine EACCES。如果加上sudo。又会去下载Downloading Prisma engines for Node-API for rhel-openssl-1.1.x。。。。。。

    • 博主
      mhlfywx
      Windows Edge 124.0.0.0
      已编辑
      7 月前
      2024-5-02 19:38:52

      看起来像没有权限,你给 chmod +755 /home/prisma_engines/migration-engine 加上权限看看

  3. jeff
    Macintosh Chrome 123.0.0.0
    7 月前
    2024-4-15 9:33:27

    原来是国人,我是issues18744刚才评论的,卡这个问题卡了2天(╯‵□′)╯︵┴─┴

    • 博主
      jeff
      Windows Edge 123.0.0.0
      7 月前
      2024-4-15 9:41:18

      哈哈,解决了吗?我昨天也被卡了好久,翻到哪条评论就试着来,然后根据报错换变量。国内用prisma的还是少,没啥资料

      • jeff
        BG7ZAG
        Macintosh Chrome 123.0.0.0
        7 月前
        2024-4-15 11:03:11

        评论之前解决的

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇