[英]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.