python - 如何在 SQLAlchemy 中回滚数据库?

标签 python unit-testing sqlalchemy rollback

对于我的数据库项目,我使用的是 SQL Alchemy。我有一个单元测试,将对象添加到表中,找到它,更新它,然后删除它。完成之后,我假设我会调用 session.rollback 方法来恢复数据库更改。它不起作用,因为我的序列没有恢复。我的项目计划是有一个数据库,我不想创建测试数据库。

我无法在 SQL Alchemy 的文档中找到有关如何正确回滚数据库更改的信息。有谁知道如何回滚数据库事务?

最佳答案

Postgres 不会回滚序列中的进展,即使该序列用于回滚的事务中也是如此。 (要了解原因,请考虑如果在回滚一个事务之前提交另一个使用相同序列的事务会发生什么情况。)

但无论如何,内存数据库(SQLite 使这变得简单)是单元测试的最佳选择。

关于python - 如何在 SQLAlchemy 中回滚数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12440044/

相关文章:

python - 将 statsmodel 估计与 scikit-learn 交叉验证结合使用是否可能?

python - 类型错误 : 'GroupedData' object is not iterable in pyspark

python - 如何模拟嵌套函数?

c# - 测试验证方法

python - 如何在 SQLAlchemy for PostgreSQL 中设置事务隔离级别?

python - 如何从内部函数获取 a 和 b 值

python - 对字母数字二维数组进行数字排序

unit-testing - Rhino Mocks和无序调用的有序测试

python - 递归 CTE 查询

python - 如何使用 SQLAlchemy 的 connection.execute 插入 CURRENT TIMESTAMP 的值