我有一个Express.js
应用程序正在Heroku instance
中运行,当它在Heroku应用程序本身中运行时,它可以很好地连接到我连接的Heroku PostgreSQL instance
。
但是当我尝试在开发和调试时在本地运行Express app
时,它无法连接到remote Postgres database
。
这迫使我不得不对代码处理数据库查询进行小的更改到Heroku并在那里进行测试,通过Heroku CLI检查错误消息,在本地修复错误,然后重复执行,这比我能够执行的速度明显慢本地进行此操作。
我在其他地方看到过,这通常是由于本地禁用了SSL, 因此我尝试了一些人们推荐的解决方案,例如使用Heroku CLI在本地进行端口转发,然后使用Visual Studio Code连接到该本地版本,但是我无法使它正常工作。
下面是launch.json
文件,在Visual Studio Code中调试时,我被告知该文件用于连接数据库:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Heroku",
"address": "localhost",
"port": 9229,
"protocol": "inspector",
"localRoot": "${workspaceFolder}\\source\\index.js",
"remoteRoot": "/app"
}
]
}
下面是命令我用来在本地转发Heroku实例的命令:
heroku ps:forward 9229 -a my-app-name
当我尝试运行命令时,它说它无法连接到dyno并检查其是否在运行。当我检查时,它表明它正在运行,只是处于空闲状态,并且我当月的配额还远远不够。
我缺少一个步骤吗?还是有比这更简单的连接到远程数据库的完全不同的方法?