簡體   English   中英

我想使用 gino 和 asyncpg 將我的應用程序連接到 heroku Postgress 數據庫

[英]I want to connect my app to a heroku Postgress database using gino and asyncpg

我想使用 gino 和 asyncpg 將我的應用程序連接到 heroku Postgress 數據庫。 我已經指定了 ssl 模式,但它仍然給出錯誤。

代碼

import asyncpg
import asyncio
import certifi
from gino import Gino

db = Gino()


class aa(db.Model):
    __tablename__ = 'aa'

    id = db.Column(db.Integer(), primary_key=True)
    nickname = db.Column(db.Unicode(), default='noname')





DATABASE_URL = "postgres://wglubqaksikdhr:a821fe4468ce05cd7e82da39cdb1e80a552cf295c01abdac88f1b155e6be3cec@ec2-54-247-89-181.eu-west-1.compute.amazonaws.com:5432/d6o79ufd72jt6l"
async def main():
    await db.set_bind(DATABASE_URL, ssl = certifi.where(), sslmode ='require')
    await db.gino.create_all()
asyncio.get_event_loop().run_until_complete(main())```

Error
asyncpg.exceptions._base.InterfaceError: `sslmode` parameter must be one of: disable, allow, prefer, require, verify-ca, verify-full

function set_bind沒有關鍵字sslmode 如果要將此關鍵字解析為asyncpg ,可以在DB_DSN中進行設置。 這是Asyncpg 文檔 例子:

DATABASE_URL = "postgres://user:pass@locahost:5432/schema?sslmode=require"

但它對我不起作用:?D???。 添加此選項后,我無法連接到 Heroku 數據庫。

然而,這項工作對我來說:

import ssl

ctx = ssl.create_default_context(cafile="")
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

await db.set_bind(DATABASE_URL, echo=True, ssl=ctx)
await db.gino.create_all()

我還建議您閱讀有關psycopg2的信息。 因為 Heroku 支持這個,這里是文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM