几件事情:
1 。当出现诸如“'env'不被识别为内部或外部命令,可操作程序或批处理文件”的错误时,这意味着系统正试图执行名为en诉这与设置环境变量无关。
Env不是windows中的命令,而是unix中的命令。我知道你有一台Windows机器。你可以做的是运行“git bash”。 (你可以自己得到它,但它带有Heroku的CLI)。
这为您提供了一个类似unix的环境,其中支持“env”命令,然后您可以运行实际的heroku pg:pull命令。
2.如果仍然无法正常工作,则可以使用解决方法,无需额外安装任何设备。其实这是基于我提交给Heroku的一张票,所以我只想引用他们的回复:
“pg:push命令只是一个围绕pg_dump
和pg_restore
命令的包装。由于遇到的错误,这听起来像我们应该继续前进,并手动执行。使用cmd运行这些。(您首先报告错误的命令提示符应用程序)。首先从你的heroku应用程序配置变量中获取连接字符串。
heroku config:get DATABASE_URL
那么你一定要挑选出用户名/主机/从连接字符串,即数据库名称部分:Postgres的://用户名:密码@主机名:端口/数据库名称。提示输入密码时,请在以下命令中使用这些变量并粘贴密码。这将转储您的heroku数据库的内容为本地文件。
pg_dump --verbose -F c -Z 0 -U username -h hostname -p port databasename > heroku.dump
接下来,您会将该文件加载到本地数据库中。在运行此命令之前,CLI执行的一件事是检查并确保目标数据库为空,因为在真实数据的数据库上运行该命令是您想要避免的,因此请小心使用pg_restore。当手动运行时,可能会冒无数CLI检查的风险,因此您可能需要手动验证目标数据库是否为空。
pg_restore --verbose --no-acl --no-owner -h localhost -p 5432 -d mydb2 < heroku.dump
对不起,这不是一个更好的经验,我希望这会帮助你取得进展。我们正在重写我们的pg命令,以便它们能够在包括windows在内的所有平台上更好地工作,但是没有可靠的时间表来完成这项工作。“
如何连接heroku? – 2014-08-28 08:18:30
从CLI使用$ heroku登录后,我登录到heroku,并使用$ git push heroku master推送我的应用程序,使用$ heroku pg:psql连接到heroku db,并从那里创建了一个表,我可以看到我使用jackDB工具创建的表。 '试图从heroku拉到我的本地数据库使用heroku pg:拉HEROKU_POSTGRESQL_COLOR mydatabase - 应用程序的appname,其显示错误,如“env”不被识别为内部或外部命令,可操作程序或批处理文件。本地数据库'mydatabase'被创建,但没有任何表。 – 2014-08-28 08:52:36
oh。好吧,我通常采用转储文件。 – 2014-08-28 09:00:36