是的-要从本地机器访问PythonAnywhere Postgres DB,您需要使用SSH隧道。 如果您使用的是类Unix操作系统(例如)。 Linux或Mac)在本地机器上,这个帮助页面底部的"手动SSH隧道"指令将通过一些调整来处理这个问题。
帮助页面上的SSH命令是:
ssh -L 3306:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com
...正如你所看到的,这是针对MySQL的。 要使其适用于您的PythonAnywhere Postgres服务器,请替换:
- 第一个带有
5432
的5432
(这意味着在您的本地机器上,它将使用默认的Postgres端口)
- 在PythonAnywhere内的"数据库"页面上的"Postgres"选项卡中带有Postgres服务器主机名的
username.mysql.pythonanywhere-services.com
。
- 第二个
5432
端口来自PythonAnywhere内"数据库"页面上的"Postgres"选项卡。
所以你会得到类似的东西
ssh -L 5432:username-123.postgres.pythonanywhere-services.com:10123 username@ssh.pythonanywhere.com
。..具有不同的值为username
,123
和和10123
。
当您运行该命令(并输入您的PythonAnywhere登录密码,它会提示您)时,一个进程将在您的机器上启动,该进程看起来像Postgres服务器到所有本地进程,但实际上只是将所有 所以你可以在本地运行你的解析和处理代码,它将透明地工作。
是的,您只需使用Django
DATABASES
settings将本地env连接到远程DB即可https://docs.djangoproject.com/en/2.0/ref/settings/#databases小心在doc中使用你的Django版本(这里是2.0)
这样,您就可以从本地env写入,并从远程服务器读取(使用相同的设置连接到远程数据库)