Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
heroku pg:不从heroku数据库提取表_Heroku_Windows 7_Postgresql 9.3_Heroku Toolbelt_Heroku Postgres - Fatal编程技术网

heroku pg:不从heroku数据库提取表

heroku pg:不从heroku数据库提取表,heroku,windows-7,postgresql-9.3,heroku-toolbelt,heroku-postgres,Heroku,Windows 7,Postgresql 9.3,Heroku Toolbelt,Heroku Postgres,我正试图使用heroku bash命令将heroku数据库拉入本地Windows计算机 heroku pg:pull heroku\u POSTGRESQL\u COLOR mydatabase--app appname 当我运行上述命令时,出现以下错误: “env”不被识别为内部或外部命令、可操作程序或批处理文件 但是创建了本地数据库“mydatabase”,但没有任何表 我的heroku应用程序的数据库中有一个表,但它不会被拉到我的本地数据库中 帮我解决这个问题。要在heroku中备份转储文

我正试图使用heroku bash命令将heroku数据库拉入本地Windows计算机

heroku pg:pull heroku\u POSTGRESQL\u COLOR mydatabase--app appname

当我运行上述命令时,出现以下错误:

“env”不被识别为内部或外部命令、可操作程序或批处理文件

但是创建了本地数据库
“mydatabase”
,但没有任何表

我的heroku应用程序的数据库中有一个表,但它不会被拉到我的本地数据库中


帮我解决这个问题。

要在heroku中备份转储文件,首先需要备份插件,安装

$heroku addons:add pgbackups
然后运行下面的命令将以最新的名称提供转储文件

$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`

编辑:(与用户聊天后,)

问题:“env”未被识别为内部或外部命令、可操作程序或批处理文件

我怀疑特定程序的
路径
变量之一出错。您可以双击并在
WINDOWS\system32
文件夹中检查

好的,那么如何编辑它:

  • 我的电脑>高级>环境变量
  • 然后选择路径并单击编辑按钮
  • 有几件事:

    1.如果出现错误,例如“'env'未被识别为内部或外部命令、可操作程序或批处理文件”,则表示系统正在尝试执行名为env的命令。这与设置环境变量毫无关系

    Env不是windows中的命令,而是unix中的命令。我知道你有一台windows电脑。你能做的就是运行“GitBash”。(您可以自己获得它,但它附带Heroku的CLI)

    这为您提供了一个支持“env”命令的类unix环境,然后您可以运行实际的heroku pg:pull命令

    2.如果仍然不起作用,有一个解决方案可以工作,无需安装任何额外设备。实际上,这是基于我提交给Heroku的一张票,所以我要引用他们的回答:

    “pg:push命令只是
    pg_dump
    pg_restore
    命令的包装。由于您遇到的错误,听起来我们应该继续手动操作。使用cmd.exe(您第一次报告错误的命令提示符应用程序)运行这些命令。”。首先从heroku应用程序配置变量中获取连接字符串

    heroku config:get DATABASE_URL
    
    然后,您要从连接字符串中选择用户名/主机名/数据库名部分,即:postgres://username:password@hostname:port/databasename。在以下命令中使用这些变量,并在提示输入密码时粘贴密码。这将转储heroku数据库的内容以获取本地文件

    pg_dump --verbose -F c -Z 0 -U username -h hostname -p port databasename > heroku.dump
    
    接下来,您将把此文件加载到本地数据库中。在运行此命令之前,CLI要做的一件事是检查并确保目标数据库为空,因为对包含真实数据的数据库运行此命令是您要避免的事情,因此请小心使用pg_restore。手动运行此命令时,可能会损坏您的数据库ata而不进行CLI检查,因此您可能需要先手动验证目标数据库是否为空

    pg_restore --verbose --no-acl --no-owner  -h localhost -p 5432 -d mydb2 < heroku.dump
    
    pg_restore--verbose--no acl--no owner-h localhost-p 5432-d mydb2

    很抱歉,这不是一个更好的体验,我希望这将帮助您取得进展。我们正在重写pg命令,以便它们在包括windows在内的所有平台上都能更好地工作,但没有明确的时间表来说明何时能完成此操作。“

    如何与heroku连接?从CLI使用$heroku登录,我已登录heroku。并使用$git push heroku master推送我的应用程序。使用$heroku pg:psql连接到heroku数据库,并从那里创建了一个表。我可以看到我从jackDB工具创建的表。但当我试图使用heroku pg:pull heroku_POSTGRESQL_COLOR mydatabase--app appname将表从heroku拉到本地数据库时,它的显示错误(如“env”)不会被识别为内部或外部命令、可操作程序或批处理文件。创建了一个本地数据库“mydatabase”,但没有任何表。好的,我通常使用转储文件。你有什么建议来解决这个问题吗?好的,谢谢。我会试试这个…但我也需要把我的数据库推回到heroku。但是heroku pg:push mydatabase heroku_POSTGRESQL_COLOR——appname不工作(devcenter.heroku.com/articles/heroku POSTGRESQL)。类似“env未被识别为内部或外部命令、可操作程序或批处理文件!”的相同错误即将出现。您对如何将本地数据库推送到Heroku有什么建议吗?我猜您使用的是windows?您使用的是virtualenv吗?或者那里是什么?我确实必须更改pg_hba.conf。必须添加错误给我的IP地址以及在我运行heroku config:get-database\u-URL时以字符串形式给出的用户名。换句话说,我第一次尝试时,IP地址和用户名出现错误。我在pg_hbba.conf中添加了这个作为另一个连接。
    pg_restore --verbose --no-acl --no-owner  -h localhost -p 5432 -d mydb2 < heroku.dump