我想使用heroku pg:push
命令将我本地的postgresql数据库推送到heroku。根据heroku文档:https://devcenter.heroku.com/articles/heroku-postgresql,命令如下:heroku pg:push mylocaldb DATABASE --app sushi
。
以下是我的本地数据库信息:
Name: mysitedb
User: bill
Password: bill
字符串
我的机器中的DATABASE_URL环境变量设置为:postgres://bill:bill@localhost/mysitedb
。
我的应用程序的名称是secure-gorge-4090
。我尝试了heroku pg:push 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:push mysitedb DATABASE --app secure-gorge-4090
,但输出仍然是一样的。
我试了heroku pg:push postgres://bill:bill@localhost:8000/mysitedb DATABASE --app secure-gorge-4090
。输出是:
! LOCAL_SOURCE_DATABASE is not a valid database name
型
我不知道如何使用此命令将我的本地数据库移动到heroku。我需要你的帮助。谢谢!
6条答案
按热度按时间5cnsuln71#
您是否在命令中实际输入了标记
DATABASE
,或者这是您用于此问题的占位符?来自docs you linked to:字符串
当你执行
heroku config -a secure-gorge-4090
时,你应该看到一个HEROKU_POSTGRESQL_[SOME COLOR NAME]
的条目。确保你在命令中使用的是那个标记而不是DATABASE
。由于您在本地数据库上有用户名和密码,因此您还需要执行有关
PGUSER
和PGPASSWORD
的部分。下面是来自pg:pull
文档的示例:型
所以你应该这样做:
型
o7jaxewo2#
我知道这是一个古老的讨论,但我有完全相同的问题。虽然它不是很方便,我设法通过pg:备份代替。
这在heroku支持站点上非常详细。
从安装免费的pgbackups插件开始:
字符串
然后使用本地pg_dump实用程序(包含在PostGreSQL发行版中)备份数据库
型
然后将该转储文件放在URL可寻址的地方(例如Dropbox),并运行heroku导入(对于Windows,确保它是双引号):
型
bbmckpt73#
您需要以下命令
字符串
请输入正确的用户名和密码
lyfkaqu14#
我是一个懒惰的程序员和效率,所以这是更容易,而不是支付AWS备份存储在Excel工作表。这保存成本,而不是使用PUSH:PUSH,这是没有效率的。
使用CMD作为ADMIN将Excel数据插入Heroku Postgres数据库。
遵循的指导
字符串
的数据
3yhwsihp5#
对我来说没有任何问题的是
字符串
database_output_name
输出文件的名称,您可以将其重命名为备份,数据库等user_name
:postgres sql user_name主要是postgresname_of_your_local_database
:是数据库的名称:mydb或任何你给的名称,如果你忘记了,你可以在PgAdmin中检查pg_dump
我已经将其导出到全局路径,这就是为什么我这样使用它,其他方法可以使用绝对路径调用它,即:C:\"Program Files"\PostgreSQL\14\bin\pg_dump
经过验证ourput文件应该如下所示
型
现在运行这个命令在heroku上创建数据库
型
如果你想重置你的数据库,你可以运行这个命令
型
现在你可以通过点击postgres链接来检查heroku上的数据库请检查这个答案以了解更多细节:pg_restore:error:unrecognized data block type(0)while searching archive while trying to import postgres database to heroku
rlcwz9us6#
对于那些可能面临无法将本地PostgreSQL推送到heroku(WINDOWS)的问题的人,请听我说完
1.使用GUI或CLI在Heroku上创建插件
1.以管理员身份打开CMD
1.首先,
dump
SCHEMA仅使用pg_dump -s -f <DB_OUTPUT_NAME_ONLY_SCHEMA> --no-owner --no-acl -U <USERNAME> <LOCAL_DB_NAME>
1.其次,使用
heroku pg:psql --app <APP_NAME> < <DB_OUTPUT_NAME_ONLY_SCHEMA>
在heroku上恢复数据库1.第三,
dump
仅限数据使用pg_dump -a -f <DB_OUTPUT_NAME_ONLY_DATA> --no-owner --no-acl -U <USERNAME> <LOCAL_DB_NAME>
1.第四,使用
heroku pg:psql --app <APP_NAME> < <DB_OUTPUT_NAME_ONLY_DATA>
恢复heroku上的数据