はSQLAlchemyのクラスです:私はGROUP_NAMEを追加したり、(例えば)group_nameのを更新SQLAlchemyレコードを「更新」して「更新」することはできますか?ここ
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())
いつでも、date_updated
フィールドが更新されます。それは素晴らしいことです。
しかし、グループレコード自体が変更されていなくても(たとえば、異なるが関連するテーブルのデータが更新された場合など)、グループを「更新済み」としてマークする場合があります。
私は手動でそれを行うことができます:
group = session.query(SgmGroup).filter(SgmGroup.group_name=='Some Group').one()
group.date_updated = datetime.datetime.utcnow()
session.commit()
を私は本当にむしろモデルは、独自の方法でそれをやらせるのではなく、手動で日付を更新するために、Pythonのプロセスを再作成すると思います。変更しないでしょう(種類のUNIX touch
のような)「タッチ」のレコードをするSQLAlchemyの持つ方法はあり
(例えば、マニュアル機能が誤ってutcnow()
を使用しながら、モデルがnow()
を使用しているかもしれないようなミスを避けるため)レコードの他の値はどれですか?しかし、onupdate=
関数をトリガーしますか?
うん、多分それはそれを行うための唯一の方法です。ありがとう。 –
おそらく 'touch()'メソッドを呼び出す –
@GraemeStuartどのような 'touch()'のメソッドですか?あるいはその使用例を見せてもらえますか? – kip2