NA *_*ers 6 postgresql heroku heroku-postgres
我知道有人问过类似的问题,但没有一个解决方案有效。我正在尝试将我的本地数据库推送到我的 Heroku 数据库,并且我不断收到 psql: FATAL: 用户“windows 用户名”的密码身份验证失败。
我在 Windows 上,所以我尝试了 SET PGUSER=postgres SET PGPASSWORD=password
然后运行 heroku pg:push localdb DATABASE_URL --app herokuapp
但我仍然收到这个愚蠢的密码错误。问题是它看起来仍然使用我的 Windows 用户名而不是 postgres 用户名......我该如何解决这个问题?
感谢 Heroku 的支持,我终于能够让它发挥作用。所以对于 Windows 用户,这些是步骤:
首先,您要将本地数据库转储到转储文件中:
pg_dump --verbose -F c -Z 0 -U postgres -h localhost -p 5432 yourdbname > local.dump
Run Code Online (Sandbox Code Playgroud)
然后你想从你的 heroku 应用程序配置变量中获取连接字符串:
heroku config:get DATABASE_URL
Run Code Online (Sandbox Code Playgroud)
然后你想从连接字符串中挑选出用户名/主机名/数据库名部分,即:postgres://用户名:密码@主机名:端口/数据库名 一个警告,对具有真实数据的生产数据库运行这个是你想要的避免使用 pg_restore 时要小心。手动运行时,您可能会在没有 CLI 检查的情况下损坏数据,因此您可能需要先手动验证目标数据库是否为空。
pg_restore --verbose --no-acl --no-owner -U username -h hostname -p 5432 -d databasename < local.dump
Run Code Online (Sandbox Code Playgroud)
然后当提示输入密码时,只需粘贴连接字符串中的密码
| 归档时间: |
|
| 查看次数: |
4620 次 |
| 最近记录: |