1

我尝试使用Heroku的bash命令Heroku的PG:拉不从Heroku的数据库中获取表

heroku pg:pull HEROKU_POSTGRESQL_COLOR mydatabase --app appname拉Heroku的数据库,以我的本地Windows计算机上,

当我运行上面的命令我得到的以下错误:

'env' is not recognized as an internal or external command, operable program or batch file.!

但本地数据库'mydatabase'被创建,但没有任何表。

我的heroku应用程序的数据库有一个表格,但它没有被拉到我的本地数据库。

帮我解决它。

+0

如何连接heroku? – 2014-08-28 08:18:30

+0

从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

+0

oh。好吧,我通常采用转储文件。 – 2014-08-28 09:00:36

回答

0

连续服用备份像Heroku的转储文件首先你需要的备份插件,安装..

$heroku addons:add pgbackups 

然后运行命令下面会给你的最新

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

名称转储文件或

wget "`heroku pgbackups:url --app app-name`" -O backup.dump 

编辑:(后chatt荷兰国际集团与用户,)

Problem: 'env' is not recognized as an internal or external command, operable program or batch file.!

我怀疑PATH变量特定节目中的一个被弄乱了。您可以双击并检查WINDOWS\system32文件夹。

确定,所以如何编辑:

  1. 我的电脑>高级>环境变量
  2. 然后选择路径,然后单击编辑按钮
+0

好的,谢谢。我会试试这个..但是我需要把我的数据库还原到heroku。但是,heroku pg:推mydatabase HEROKU_POSTGRESQL_COLOR --app appname不起作用(devcenter.heroku.com/articles/heroku-postgresql)。像“env不被识别为内部或外部命令,可操作程序或批处理文件一样的错误!”来了。你有任何建议如何推送本地数据库到heroku – 2014-08-28 10:24:49

+0

我猜你正在使用Windows? – 2014-08-28 10:29:45

+0

是的Windows 7 .. – 2014-08-28 10:41:19

2

几件事情:

1 。当出现诸如“'env'不被识别为内部或外部命令,可操作程序或批处理文件”的错误时,这意味着系统正试图执行名为en诉这与设置环境变量无关。

Env不是windows中的命令,而是unix中的命令。我知道你有一台Windows机器。你可以做的是运行“git bash”。 (你可以自己得到它,但它带有Heroku的CLI)。

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

2.如果仍然无法正常工作,则可以使用解决方法,无需额外安装任何设备。其实这是基于我提交给Heroku的一张票,所以我只想引用他们的回复:

“pg:push命令只是一个围绕pg_dumppg_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在内的所有平台上更好地工作,但是没有可靠的时间表来完成这项工作。“

+0

这工作(在Win 8.1上)。谢谢。 – 2016-11-27 13:36:16

+0

我确实必须更改pg_hba.conf。不得不添加IP地址错误给了我一起,当我运行heroku配置时在字符串中给出的用户名:获取DATABSE_URL。 。换句话说,我第一次尝试使用IP地址和用户名时出错。我在pg_hbba.conf中添加了这个作为另一个连接。 – 2016-11-27 13:50:40