title: Can I "touch" a SQLAlchemy record to trigger "onupdate"?
body: <p>Here's a SQLAlchemy class:</p>
  
  <pre><code>class MyGroup(Base):
      __tablename__ = 'my_group'
      group_id = Column(Integer, Sequence('my_seq'), primary_key=True)
      group_name = Column(String(200), nullable=False, index=True)
      date_created = Column(DateTime, default=func.now())
      date_updated = Column(DateTime, default=func.now(), onupdate=func.now())
  </code></pre>
  
  <p>Anytime I add a group_name or (for example) update the group_name, the <code>date_updated</code> field will get updated.  That's great.</p>
  
  <p>But sometimes there are cases where I want to mark a group as "updated" even if the group record itself did not change (for example, if data in a different but related table is updated).  </p>
  
  <p>I could do it manually:</p>
  
  <pre><code>group = session.query(MyGroup).filter(MyGroup.group_name=='Some Group').one()
  group.date_updated = datetime.datetime.utcnow()
  session.commit()
  </code></pre>
  
  <p>but I'd really rather let the model do it in its own way, rather than recreate a Python process to manually update the date.  (For example, to avoid mistakes like where maybe the model uses <code>now()</code> while the manual function mistakenly uses <code>utcnow()</code>)</p>
  
  <p>Is there a way with SQLAlchemy to "touch" a record (kind of like UNIX <code>touch</code>) that wouldn't alter any of the record's other values but would trigger the <code>onupdate=</code> function?</p>