出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包
Posted
技术标签:
【中文标题】出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包【英文标题】:Get Error: You must install at least one postgresql-client-<version> package when deploy to heroku 【发布时间】:2015-04-02 03:38:17 【问题描述】:sdilshod@sdilshod-Lenovo-B590:~/webapp/saturn$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.6194
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2- 0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2- 0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
Error: You must install at least one postgresql-client-<version> package.
rake aborted!
Error dumping database
/app/vendor/bundle/ruby/1.9.1/gems/activerecord- 3.2.12/lib/active_record/railties/databases.rake:415:in `block (3 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord- 3.2.12/lib/active_record/railties/databases.rake:188:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/railties/databases.rake:182:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
heroku pg:psql 工作正常,但是当我迁移 rake db:migrate 时出现需要安装 pg 客户端的错误。我需要在哪里安装 pg 客户端?任何帮助
【问题讨论】:
我找到了 [this][1] 解决方案并修复了错误 [1]:***.com/questions/17300341/… 【参考方案1】:2020 年 3 月 30 日更新
同意选择的答案,但我发现在 Ubuntu 18 上安装 postgresql-client-12 稍微复杂一些。
sudo apt update
sudo apt -y install vim bash-completion wget
sudo apt -y upgrade
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt -y install postgresql-client-12
详情请见this reference。
【讨论】:
在 Ubuntu 20.04 中,最后一行指令就可以解决问题。 对于 PostgreSQL 13,请在此处查看他们的(几乎相同的)指南:computingforgeeks.com/how-to-install-postgresql-13-on-ubuntu【参考方案2】:在基于 Debian 的系统上,PostreSQL 客户端程序由 postgresql-client-common 作为指向 /usr/share/postgresql-common/pg_wrapper
的符号链接提供。
如果您安装该软件包并尝试使用任何 PostgreSQL 客户端程序,例如 psql、pg_dump、pg_dumpall 和 pg_restore,pg_wrapper 没有安装特定版本的二进制包,比如 postgresql-client-9.1 会发出这个错误:
你必须至少安装一个 postgresql-client-
包
解决此问题的最简单方法是安装 postgresql-client 元包。它始终依赖于基于 Debian 的系统上当前支持的 PostgreSQL 数据库客户端包,它依赖于 postgresql-client-common
sudo apt-get install postgresql-client
【讨论】:
感谢您的回复,jla!似乎 bug heroku 我找到了***.com/questions/17300341/… 来解决 不客气。我在通过在命令行上使用 psql 而不是使用 heroku 搜索“至少一个”错误消息时发现了这一点。在我找到答案后,我想留下一个 Debian 特定的修复程序,它为 Debian 特定的错误提供一个工作的 pg_dump 和 psql,作为建议的忽略错误的 heroku 修复程序的替代方案。 通过heroku run bash
运行sudo apt-get install postgresql-client
不起作用?它返回bash: sudo: command not found
。我在这里错过了什么?以上是关于出现错误:部署到 heroku 时,您必须至少安装一个 postgresql-client-<version> 包的主要内容,如果未能解决你的问题,请参考以下文章
Streamlit Python 应用程序成功部署到 Heroku,但出现应用程序错误
当我当时在 Heroku 中部署 django 应用程序时,出现“Compiled Slug Size is too Large”错误