0
我試圖使用Kenneth Reitz's records library構建一些自動測試腳本。我需要在這裏和那裏檢查MySQL數據庫的更新。更改記錄查詢或關閉事務中的隔離級別
db_url_mysql = 'mysql://user:[email protected]:3306/DB'
db = records.Database(db_url_mysql)
rows = db.query("SELECT * FROM Users").all()
但是,我遇到有時簡單的查詢返回一個空的數據集,忽略表中的更新。我完全可以在GUI客戶端看到更新,甚至可以在備用python控制檯中使用記錄。 我發現記錄使用默認隔離級別爲「REPEATABLE READ」的SQLAlchemy。可重複讀取忽略所有更新,直到事務結束,所以我看不到它們。
有什麼方法可以改變這種情況嗎?我可能需要關閉事務並打開一個新事務,或者更改此連接的隔離級別,但我該如何做?
我仍然無法找到一個方法來改變這個設置不刪除記錄庫,並移動到SQLAlchemy的隔離級別。不過,我找到了一個解決方法。如果你調用'db.query('SET AUTOCOMMIT = 1')',下一次查詢將在調用後立即提交,這有效地允許你在沒有緩存的情況下檢查你的db。 – Ariksu