如何自动测试 alembic 迁移是否正确实施

问题描述 投票:0回答:0

在 alembic 中,我们必须为我们添加的每个迁移实现

upgrade
downgrade
函数。 AFAIK
downgrade
函数假设要还原
upgrade
所做的所有更改。

有没有办法自动测试

downgrade
功能是否正确实现?

作为最终结果,我想添加一个 pytest 测试,以这种方式断言每个迁移。

一种天真的方法是实现一个函数,该函数对所有模式、表、索引、列等进行“清点”;比较迁移之前和对给定迁移执行升级和降级之后的清单;如果两个清单相同,则

downgrade
已正确实施。这种方法的问题是 (i) 看起来太麻烦而无法实施,并且 (ii) 计算量似乎非常大。

有没有更好的方法来对我的

downgrade
功能进行测试?

python sqlalchemy pytest alembic
© www.soinside.com 2019 - 2024. All rights reserved.