首页 > 解决方案 > 连接表的自动回滚

问题描述

有一个基于 PostgreSQL、Python 和 SQLAlchemy 的 CMS 系统。系统的发布部分基于一个结构:

“门户”的每个实体可以有许多“页面”。

Portal >--to many(junction_table_1)--< Page 

假设我们有一个带有一些网页的门户。在某个时间点,设计会发生变化——旧页面被删除,新页面以及所有配置文件都被添加。我们称这个时间点为 (T)。从那时起,新的网页就会出现。

其中一种形式存在错误。提交后说有会话问题。此错误可以在每台机器和 Web 浏览器上复制,并且没有其他问题可见。

魔术从这里开始:办公室中有一台已识别的计算机 - 如果提到的错误是由它引起的 - 会导致数据库发生异常变化。表“junction_table_1”的状态恢复到 (T) 之前的时间点。“门户”显示所有与用户相关的旧网页。只是说清楚:它不是整个数据库。这只是一个连接表。

我知道“这是不可能的”,但我已经看到它一遍又一遍地用那台机器复制。

我们检查了数据库上的锁,挂起回滚等。那里什么都没有。没有脚本、触发器、过程 - 该方案仅包含表和序列。

有什么提示吗?工具?想法从哪里开始寻找一些解释?我需要一个巫师来参加冒险...

标签: pythonpostgresqlsqlalchemy

解决方案


推荐阅读