当前位置: 首页 > 知识库问答 >
问题:

将数据库推送到heroku:如何使用heroku pg:推

姬温文
2023-03-14

我想使用heroku pg:push命令将本地postgresql数据库推送到heroku。命令如下所示:heroku pg:push mylocaldb DATABASE--app sushi根据heroku文档:https://devcenter.heroku.com/articles/heroku-postgresql.

这是我的本地数据库信息:

Name: mysitedb
User: bill
Password: bill

我的计算机中的DATABASE\u URL环境变量设置为:<代码>postgres://bill:bill@localhost/mysitedb

我的应用程序的名称是secure-gorge-4090。我尝试了heroku pg:推送mysitedb DATABASE--app secure-gorge-4090。输出是:

 !    Remote database is not empty.
 !    Please create a new database, or use `heroku pg:reset`

我很惊讶我没有在数据库中输入任何内容。但我仍然运行heroku pg:reset DATABASE来重置我的数据库。之后,我再次尝试了heroku pg:推送mysitedb数据库——app secure-gorge-4090,但输出仍然相同。

我试过heroku pg:推postgres://bill:bill@本地主机:8000/mysitedb数据库——app secure-gorge-4090。输出为:

!    LOCAL_SOURCE_DATABASE is not a valid database name

我不知道如何使用此命令将本地数据库移动到heroku。我需要你的帮助。谢谢

共有3个答案

公孙志
2023-03-14

您需要以下命令

PGUSER=root PGPWD=root heroku pg:push (local database name) DATABASE_URL --app heroku (app name)

确保您输入了正确的postgres用户名和密码

秋阳荣
2023-03-14

我知道这是一个古老的讨论,但我有完全相同的问题。虽然它不太方便,但我设法通过pg:备份来实现这一点。

这在heroku支持网站上非常详细

首先安装免费的pgbackups加载项:

heroku addons:add pgbackups

然后使用本地pg_dump实用程序备份数据库(包含在PostGreSQL发行版中)

pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dmp

然后将该转储文件放在URL可寻址的位置(例如Dropbox),并运行heroku导入(确保它是Windows的双引号):

heroku pg:backups:restore 'https://dropbox.com/dYAKjgzSTNVp4jzE/mydb.dmp' DATABASE_URL
拓拔松
2023-03-14

您是否真的在命令中键入了令牌数据库,或者您在这个问题中使用了占位符?从链接到的文档中:

Like pull but in reverse, pg:push will push data from a local database into 
a remote Heroku Postgres database. The command looks like this:

$ heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi

This command will take the local database “mylocaldb” and push it to the 
database at DATABASE_URL on the app “sushi”. In order to prevent accidental 
data overwrites and loss, the remote database must be empty. You will be 
prompted to pg:reset an already a remote database that is not empty.

Usage of the PGUSER and PGPASSWORD for your local database is also supported
for pg:push, just like for the pg:pull commands.

当您执行heroku配置-secure-gorge-4090时,您应该会看到heroku\u POSTGRESQL\u[一些颜色名称]的条目。确保您在命令中使用的是该令牌,而不是数据库。

由于您在本地数据库中有用户名和密码,因此您还需要执行前面提到的关于PGUSER和PGPASSWORD的部分。下面是一个示例,来自于pg:pull文档:

$ PGUSER=postgres PGPASSWORD=password heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi

因此,您应该做如下操作:

$ PGUSER=bill PGPASSWORD=bill heroku pg:push mysitedb HEROKU_POSTGRESQL_[SOME COLOR] -a secure-gorge-4090
 类似资料:
  • 问题内容: 我正在使用node制作电子邮件客户端。我想在收到任何新电子邮件后立即更新浏览器窗口。我已经使用mail- listener2在服务器端获取电子邮件了。我想将数据推送到客户端。我怎么做? 问题答案: 看一下使用 websocket 将数据实时推送到客户端(浏览器)。我建议使用http://socket.io。他们那里有一些非常棒的演示,展示了您将如何做这样的事情。 您的服务器将发送名为的

  • 即时消息使用本机推送通知https://github.com/zo0r/react-native-push-notification 如何将推送消息(聊天)传递到通知中? 我应该做哪一部分? ps:我不明白这是怎么回事-

  • 我是新来的反应本地人。我需要,如何推setState数组到新的数据?

  • 问题内容: 初学者ES问题在这里 将Spark数据框推送到Elastic Search的工作流程或步骤是什么? 通过研究,我相信我需要使用spark.newAPIHadoopFile()方法。 但是,在研究ElasticSearch文档和其他StackQ / A时,我仍然对参数需要采用的格式以及为什么使用它感到困惑 请注意,我正在使用pyspark,这是ES的新表(尚无索引),并且df是5列(2个

  • 下面是我的代码: 是不可能插入IMEI的事实,这就是为什么它不张贴,还是其他一些问题? 谢谢你的协助。

  • 问题内容: 我是使用Heroku的新手,并且有一个Ruby / Sinatra应用程序,我打算在其中使用MySQL数据库作为主要数据存储。 但是,我不想将结果直接写到Heroku上的数据库中。相反,我想将结果写入本地数据库,然后能够轻松地将本地数据库部署/更新/复制到Heroku上的“生产”数据库。 我该怎么做呢? 谢谢。 问题答案: 首先Heroku在本地使用postgres。如果您在本地使用,