我有和ORM應用程序使用SQLAlchemy,Alembic遷移和Pytest進行測試。在我的測試中,我有一個數據庫作爲夾具。過去,在我使用遷移之前,我刪除了所有表併爲每個測試會話重新創建它們。在單元測試SQLAlchemy應用程序中使用Alembic?
現在,我使用的遷移,我想用蒸餾器中創建我的燈具也因爲我相信,模擬生產環境更加緊密。(這是一個好理由?)
一種方式來做到這一點是到downgrade()
一路下降,upgrade()
每次上升。我不太喜歡這個。我可能錯了。
另一個辦法是drop_all()
和create_all()
單元測試,並且只寫另一個測試郵票頭數據庫,並測試一個upgrade
和downgrade
。
是否有另一種好的/標準的方式來整合遷移與燈具,所以我不必使用drop_tables
?
或者有沒有辦法在drop_tables
之後戳db爲「tail」還是空的?如果沒有明確使用版本0的遷移哈希,會導致創建依賴關係,如alembic downgrade -1
,這將使其回到第0年。謝謝。
謝謝。 'testing.psql'的問題是,它需要psql來啓動一個臨時實例,我的環境是容器化的,我的數據庫在另一個容器中,而我的orm容器中沒有psql。我不想拉pg進去它,所以我最後打了個尾巴 – plumSemPy
未來的參考文獻:'alembic降級基地' http://alembic.zzzcomputing.com/en/latest/tutorial.html#downgrading – plumSemPy