Add created_at and updated_at columns to ft_processing_time

This commit is contained in:
Rebecca Law
2021-02-23 14:24:46 +00:00
parent 21edf7bfdd
commit 0849070eca
4 changed files with 16 additions and 3 deletions

View File

@@ -1,3 +1,5 @@
from datetime import datetime
from sqlalchemy.dialects.postgresql import insert
from app import db
@@ -23,7 +25,8 @@ def insert_update_processing_time(processing_time):
index_elements=[table.c.bst_date],
set_={
'messages_total': stmt.excluded.messages_total,
'messages_within_10_secs': stmt.excluded.messages_within_10_secs
'messages_within_10_secs': stmt.excluded.messages_within_10_secs,
'updated_at': datetime.utcnow()
}
)
db.session.connection().execute(stmt)

View File

@@ -2074,6 +2074,8 @@ class FactProcessingTime(db.Model):
bst_date = db.Column(db.Date, index=True, primary_key=True, nullable=False)
messages_total = db.Column(db.Integer(), nullable=False)
messages_within_10_secs = db.Column(db.Integer(), nullable=False)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
class Complaint(db.Model):

View File

@@ -18,6 +18,8 @@ def upgrade():
sa.Column('bst_date', sa.Date(), nullable=False),
sa.Column('messages_total', sa.Integer(), nullable=False),
sa.Column('messages_within_10_secs', sa.Integer(), nullable=False),
sa.Column('created_at', sa.DateTime(), nullable=False),
sa.Column('updated_at', sa.DateTime(), nullable=True),
sa.PrimaryKeyConstraint('bst_date')
)
op.create_index(op.f('ix_ft_processing_time_bst_date'), 'ft_processing_time', ['bst_date'], unique=False)

View File

@@ -1,5 +1,7 @@
from datetime import datetime
from freezegun import freeze_time
from app.dao import fact_processing_time_dao
from app.models import FactProcessingTime
@@ -19,14 +21,16 @@ def test_insert_update_processing_time(notify_db_session):
assert result[0].bst_date == datetime(2021, 2, 22).date()
assert result[0].messages_total == 3
assert result[0].messages_within_10_secs == 2
assert result[0].created_at
assert not result[0].updated_at
data = FactProcessingTime(
bst_date=datetime(2021, 2, 22).date(),
messages_total=4,
messages_within_10_secs=3
)
fact_processing_time_dao.insert_update_processing_time(data)
with freeze_time("2021-02-23 13:23:33"):
fact_processing_time_dao.insert_update_processing_time(data)
result = FactProcessingTime.query.all()
@@ -34,3 +38,5 @@ def test_insert_update_processing_time(notify_db_session):
assert result[0].bst_date == datetime(2021, 2, 22).date()
assert result[0].messages_total == 4
assert result[0].messages_within_10_secs == 3
assert result[0].created_at
assert result[0].updated_at == datetime(2021, 2, 23, 13, 23, 33)