Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 24th, 2012  |  syntax: None  |  size: 1.89 KB  |  hits: 32  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. SQLAlchemy StaleDataError on deleting items inserted via ORM sqlalchemy.orm.exc.StaleDataError
  2. "MyPyramidApplication Error"<class 'sqlalchemy.orm.exc.StaleDataError'>: DELETE statement on table 'page_view' expected to delete 6 row(s); Only 0 were matched.
  3.        
  4. page_view_table = sa.Table(
  5.    'page_view',
  6.     metadata,
  7.     sa.Column('id', sa.Integer, primary_key=True),
  8.     sa.Column('page_id', sa.Integer, sa.ForeignKey('guide.id')),
  9.     sa.Column('user_id', sa.Integer, sa.ForeignKey('user.id')),
  10.     sa.Column('last_view', sa.DateTime, nullable=False),
  11.     sa.UniqueConstraint('user_id', 'page_id'),
  12.     mysql_engine='InnoDB',
  13.     mysql_charset='utf8mb4'
  14. )
  15.        
  16. orm.mapper(Page, page_table,
  17.     properties = {
  18.         'users_viewed': sa.orm.relation(
  19.             User,
  20.             secondary=page_view_table,
  21.             backref='page'),
  22.     }
  23. )
  24.        
  25. ins = model.page_view_table.insert()
  26. sql = str(ins)
  27. sql += ' ON DUPLICATE KEY UPDATE last_view = :last_view'
  28. session = model.Session()
  29. session.execute(sql, page_views)
  30. mark_changed(session)
  31.        
  32. 2011-11-05 18:06:08,031 INFO  [sqlalchemy.engine.base.Engine][worker 3] DELETE FROM page_view WHERE page_view.page_id = %s AND page_view.user_id = %s
  33. 2011-11-05 18:06:08,031 INFO  [sqlalchemy.engine.base.Engine][worker 3] (13818L, 259L)
  34. 2011-11-05 18:06:08,032 INFO  [sqlalchemy.engine.base.Engine][worker 3] DELETE FROM page_view WHERE page_view.page_id = %s AND page_view.user_id = %s
  35. 2011-11-05 18:06:08,033 INFO  [sqlalchemy.engine.base.Engine][worker 3] (13818L, 259L)
  36. 2011-11-05 18:06:08,033 INFO  [sqlalchemy.engine.base.Engine][worker 3] ROLLBACK
  37.        
  38. ingredients = Table('ingredients', metadata,
  39.     Column('recipe_title', Unicode, ForeignKey('recipes.title'), primary_key=True),
  40.     Column('product_title', Unicode, ForeignKey('products.title'), primary_key=True),
  41.     Column('amount', Integer, nullable=False),
  42.     Column('unit_title', Unicode, ForeignKey('units.title')))