我在 heroku 上运行 python 3.5 worker。
self.engine = create_engine(os.environ.get("DATABASE_URL"))
我的代码在本地运行,通过了 Travis CI,但在 heroku 上出现错误 - OperationalError: (psycopg2.OperationalError) FATAL: database "easnjeezqhcycd"does not exist
。
easnjeezqhcycd
是我的用户,不是数据库名称。由于我没有使用 flask 的 sqlalchemy,所以我还没有发现一个人与同一个人打交道
我尝试破坏我的插件数据库并在 heroku 上创建独立的 postgres 数据库 - 同样的错误。
SQLAlchemy 不接受 heroku 的 URL 有什么不同?有没有办法使用 psycopg2 建立连接并将其传递给 SQLAlchemy?
最佳答案
老问题,但答案似乎是database_exists
和create_database
有针对引擎URL 以postgresql
开头时的特殊情况代码,但如果 URL 仅以 postgres
开头,这些函数将失败。但是,SQLAlchemy 通常可以很好地处理这两种变体。
因此解决方案是确保数据库 URL 以 postgresql://
而不是 postgres://
开头。
关于python - Heroku SQLAlchemy 数据库不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910066/