How Can I Automatically Populate SQLAlchemy Database Fields? (Flask-SQLAlchemy) How Can I Automatically Populate SQLAlchemy Database Fields? (Flask-SQLAlchemy) flask flask

How Can I Automatically Populate SQLAlchemy Database Fields? (Flask-SQLAlchemy)


Just add server_default or default argument to the column fields:

created_on = db.Column(db.DateTime, server_default=db.func.now())updated_on = db.Column(db.DateTime, server_default=db.func.now(), server_onupdate=db.func.now())

I prefer the {created,updated}_on column names. ;)

SQLAlchemy docs about column insert/update defaults.

[Edit]: Updated code to use server_default arguments in the code.

[Edit 2]: Replaced onupdate with server_onupdate arguments.


date_created  = db.Column(db.DateTime,  default=db.func.current_timestamp())date_modified = db.Column(db.DateTime,  default=db.func.current_timestamp(),                                       onupdate=db.func.current_timestamp())