簡體   English   中英

SQLAlchemy 2.0 遷移 - 連接到數據庫

[英]SQLAlchemy 2.0 migration - Connection to Database

我只是在測試 SQLAlchemy 1.4 庫,我注意到在可預見的將來它們會改變某些核心功能。 我通常連接到如下所示的數據庫,然后他們提到他們將在MetaBase class 上刪除這個bind方法,編寫這個的設定標准是什么?

def output_log(msg):
    connector = create_engine("mylogin")
    metadata = MetaData(bind=connector)
    log = Table("mytable", metadata, autoload=True)
    sess = connector.connect()
    i = insert(log).values({"Message": msg})
    sess.execute(i)
    sess.close()

對此的更改和背景在“隱式”和“無連接”執行中描述,“綁定元數據”已刪除

您可以按如下方式重寫代碼:

def output_log(msg):
    engine = create_engine("mylogin")
    metadata = MetaData()
    log = Table("mytable", metadata, autoload_with=engine)
    sess = engine.connect()
    i = log.insert().values({"Message": msg})
    sess.execute(i)
    sess.commit()
    sess.close()

或者為了完整性使用with

    with engine.begin() as sess:
        i = log.insert().values({"Message": msg})
        sess.execute(i)

未來commit的另一half選項:

    with engine.connect() as sess:
        i = log.insert().values({"Message": msg})
        sess.execute(i)
        sess.commit()

暫無
暫無

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

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