繁体   English   中英

psycopg2.OperationalError: FATAL: 抱歉,heroku 上已经有太多客户端了

psycopg2.OperationalError: FATAL: sorry, too many clients already on heroku

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试图将我的 Flask 应用程序推送到 heroku,我的应用程序使用 Postgres 作为数据库。 但是,当我尝试使用此命令在 heroku 上迁移数据库时

heroku run python manage.py db init --app app

它为 psycopg2 和 sqlalchchemy 提供了“客户端太多”错误。

Running python manage.py db migrate on ⬢ petscom... up, run.5707 (Hobby)
Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2285, in _wrap_pool_connect
    return fn()
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 303, in unique_connection
    return _ConnectionFairy._checkout(self)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 773, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 492, in checkout
    rec = pool._do_get()
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/impl.py", line 238, in _do_get
    return self._create_connection()
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
    return _ConnectionRecord(self)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 437, in __init__
    self.__connect(first_connect_check=True)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 657, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 69, in __exit__
    exc_value, with_traceback=exc_tb,
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
    raise exception
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/pool/base.py", line 652, in __connect
    connection = pool._invoke_creator(self)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 488, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  sorry, too many clients already
FATAL:  sorry, too many clients already

经过一番谷歌搜索,我尝试了:

  1. heroku pg:killall
  2. heroku restart 这些都不起作用.....

我检查了heroku pg,它显示了0/20个连接...... 在此处输入图片说明

有人说不要将db连接放入循环中,但我必须检查db中是否有一些数据。 这是我的代码:

try:
        connection = psycopg2.connect(user="postgres",
                                      password="pass",
                                      host="127.0.0.1",
                                      port="5432",
                                      database="pets")

        cursor = connection.cursor()

        select_all = "select * from pets"
        cursor.execute(select_all)

        # Check if api data in db and save to db
        for index in range(len(myData)):
            # if not exist in db => save to db
            key = myData[index]["animal_id"]
            exists = check_exists(key, cursor)
            if(exists):
                pass
            else:
                doSomething()

我可以连接到我的本地 postgres 数据库,但不能连接到 heroku 上的数据库。 我该如何处理这个问题? 任何建议都会有所帮助:) 谢谢!

1 个回复

我有一个类似的问题。 我能够通过在环境中设置SQLALCHEMY_TRACK_MODIFICATIONS=False 、破坏数据库并创建一个新数据库来修复它。

您可以通过访问https://data.heroku.com/datastores来销毁它,打开数据库,转到设置,然后选择“销毁数据库”。

然后像往常一样配置一个新的。

4 PostgreSQL演变:“PSQLException:致命:抱歉,已经有太多客户”

我正在尝试建立一个开发PostgreSQL服务器。 它正在运行,我可以从命令行创建角色,表等。 但是当我尝试使用Play应用evolution时,我收到以下错误: 我能够连接,如果我故意输入语法错误,它会返回语法错误,所以我知道Play能够连接到数据库。 但是,在演变成功应用后,我 ...

6 psycopg2.OperationalError:致命:角色不存在

我正在尝试从我计算机上的 Python 脚本更新我的 Heroku 数据库。 我使用 NodeJS 在 Heroku 上设置了我的应用程序(因为我就像 Javascript 一样),我不确定我可以添加一个 ZA7F5F35426B927411FC9231B5638217 脚本来管理所有内容。 我能够 ...

10 带有openerp的psycopg2.OperationalError

我已经在Windows环境中成功安装了openerp / postgresql。 后来我创建了“ mydb”数据库。 然后,我尝试安装应用程序。 系统抛出以下错误消息。 psycopg2.OperationalError-mydb不存在-致命错误。 我在Postgresql服务 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM