我试图使用命令Heroku pg:psql连接到我的数据库插件在heroku,但得到了下面的响应
--> Connecting to postgresql-regular-61345
unrecognized win32 error code: 123could not find a "psql" to execute
unrecognized win32 error code: 123could not find a "psql" to execute
psql: fatal: could not find own program executable
! psql exited with code 1
字符串
在使用heroku logs --tail命令后,我得到了以下错误
sh: 1: nodemon: not found
Process exited with status 127
State changed from starting to crashed
型
我还可以看到所有进程都停止了SIGTERM,进程退出时的状态为143
我采取的解决措施
1.已验证环境变量是否具有我PC上已安装的postgress 14的路径
1.在我的后端代码中向根文件添加了一个procfile,并指定了“web:node matthewfaceappback/server.js in the file”
1.使用process.env.PORT将我的设置端口更改为变量端口|| 3000
1.设置所有的环境变量,包括我的数据库网址(默认设置)的配置变量在heroku
1.已验证是否有启动脚本
1.使用“npm update”更新了我所有的软件包。在这样做之后,我开始遇到进程停止与SIGTERM和进程退出状态143的问题
1.我将nodemon从devendencies移动到dependencies。nodemon版本是2.0.15
1.在package.json中,我输入了一个engines参数,在我的例子中使用了node的版本
{“engines”:{“node”:“14.17.4”}}
1.我使用“heroku restart”重新启动heroku
下面是错误的屏幕截图链接
https://www.dropbox.com/s/5bdbyi9e99lbxhu/pic1.PNG?dl=0
https://www.dropbox.com/s/41euniaes5q68c9/pic2.PNG?dl=0
https://www.dropbox.com/s/50oqzbwmwrqogax/pic3.PNG?dl=0
型
3条答案
按热度按时间yxyvkwin1#
将nodemon放回devendencies中,并将其作为第二个节点脚本添加到package.json中:
字符串
zxlwwiss2#
这两个错误是完全无关的。
数据库连接错误
第一个问题,我相信这是你目前真正关心的问题,根据问题的标题,表明Heroku CLI无法在你的 * 本地 * 机器上找到PostgreSQL客户端。
该文档提出了以下建议
在Windows上设置Postgres
使用Windows installer在Windows上安装Postgres。
请记住更新PATH环境变量以添加Postgres安装的
bin
目录。该目录类似于:C:\Program Files\PostgreSQL\<VERSION>\bin
。heroku pg:psql
等命令依赖于PATH,如果PATH不正确,则不起作用。如果你还没有在本地安装Postgres,那么就这样做吧。(这是个好主意,因为你应该在本地开发,而且你可能需要一个数据库。)
然后确保add its
bin/
directory to yourPATH
environment variable。Nodemon错误
第二个问题是因为你试图在生产中使用nodemon。Heroku在构建Node.js应用程序后将其开发依赖项从Node.js应用程序中剥离出来,这通常是有意义的。Nodemon是一个 * 开发 * 工具,不应该用于生产托管。
根据
package.json
的内容,这可能很简单,只需将start
脚本从nodemon some-script.js
更改为node some-script.js
即可。或者,您可以使用实际希望在Heroku上运行的命令添加Procfile
:字符串
参见Need help deploying a RESTful API created with MongoDB Atlas and Express
oymdgrw73#
确保PostgreSQL bin文件夹的系统PATH环境变量中的条目没有双引号(“)
2013年,Luis Gonzalo Constantini Rickel针对PostgreSQL 9.2.4提交了关于此psql.exe行为的错误#8472,但该错误从未得到解决,至少在2023年11月:https://www.postgresql.org/message-id/E1VPJrB-00071y-RR%40wrigleys.postgresql.org
你可以在安装了PostgreSQL 15的Windows上产生同样的问题.
字符串
然后尝试运行psql.exe,你会得到这个错误:
型
相比之下,
型
导致
型