gpt4 book ai didi

python - 我怎么知道为什么在 SQLAlchemy 中发生回滚?

转载 作者:可可西里 更新时间:2023-11-01 08:37:48 26 4
gpt4 key购买 nike

当我使用 SQLAlchemy 插入 MySQL 时,我看到消息“ROLLBACK”出现在开发服务器的输出日志中。我如何知道回滚发生的原因?

2011-04-10 00:35:32,736 INFO  [sqlalchemy.engine.base.Engine.0x...4710][MainThread] INSERT INTO pageview (time, unit_id, visitor_id, url_id, referrer_id, reservation_id, visit_id) VALUES (%s, %s, %s, %s, %s, %s, %s)
2011-04-10 00:35:32,736 INFO [sqlalchemy.engine.base.Engine.0x...4710][MainThread] (datetime.datetime(2011, 1, 31, 0, 1, 53), 120L, 5538L, 11075L, 11076L, 5538L, None)
2011-04-10 00:35:32,737 INFO [sqlalchemy.engine.base.Engine.0x...4710][MainThread] ROLLBACK
Starting server in PID 10158.
serving on 0.0.0.0:6543 view at http://127.0.0.1:6543

我注意到字母“L”出现在每个外键值之后(例如:unit_id 字段是“120L”而不是“120”)。这可能与此问题有关吗?

这是执行插入的 python 代码:

@classmethod
def unconverted(class_):
session = DBSession()
return session.query(class_).filter(class_.pageview == None).order_by(class_.time).limit(5).all()

@classmethod
def convert_all(class_):
session = DBSession()

unconverted = class_.unconverted()
for item in unconverted:

pageview = PageView(raw_request=item)
item.pageview = pageview
session.add(item)

session.flush()
transaction.commit()
session.close()

编辑:

按照 plaes 的建议,在 session.flush() 上执行 try/except 时出现以下异常:

2011-04-10 11:33:44,462 INFO  [sqlalchemy.engine.base.Engine.0x...3750][MainThread] ROLLBACK
(IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails (`metrics`.`pageview`, CONSTRAINT `pageview_ibfk_1` FOREIGN KEY (`unit_id`) REFERENCES `unit` (`id`))') 'INSERT INTO pageview (time, unit_id, visitor_id, url_id, referrer_id, reservation_id, visit_id) VALUES (%s, %s, %s, %s, %s, %s, %s)' (datetime.datetime(2011, 1, 31, 0, 1, 53), 120L, 5608L, 11215L, 11216L, 5608L, None)

发生了什么错误?

最佳答案

当异常发生时,你总是可以打印出错误:

try:
transaction.commit()
except Exception, e:
session.rollback()
print str(e)

关于python - 我怎么知道为什么在 SQLAlchemy 中发生回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5610463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com