diff --git a/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py b/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py index 89cf9a9..051ecf1 100644 --- a/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py +++ b/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py @@ -24,6 +24,7 @@ def upgrade(): default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) ) + # Update all the tickets having comments op.execute(''' UPDATE "issues" SET last_updated=o_date FROM ( @@ -32,14 +33,21 @@ FROM ( ORDER BY o_date DESC ) AS subq WHERE "issues".uid = issue_uid;''') + # Update all the tickets without comments op.execute('''UPDATE "issues" SET last_updated=date_created ''' '''WHERE last_updated IS NULL;''') + # Require `last_updated` no NULL at the DB level + op.alter_column( + 'issues', 'last_updated', + nullable=False, existing_nullable=True) + op.add_column( 'pull_requests', sa.Column('last_updated', sa.DateTime, nullable=True, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) ) + # Update all the PRs having comments op.execute(''' UPDATE "pull_requests" SET last_updated=o_date FROM ( @@ -48,8 +56,13 @@ FROM ( ORDER BY o_date DESC ) AS subq WHERE "pull_requests".uid = pull_request_uid;''') + # Update all the PRs without comments op.execute('''UPDATE "pull_requests" SET last_updated=date_created ''' '''WHERE last_updated IS NULL;''') + # Require `last_updated` no NULL at the DB level + op.alter_column( + 'pull_requests', 'last_updated', + nullable=False, existing_nullable=True) def downgrade(): diff --git a/pagure/lib/model.py b/pagure/lib/model.py index be14733..db1abd2 100644 --- a/pagure/lib/model.py +++ b/pagure/lib/model.py @@ -665,7 +665,7 @@ class Issue(BASE): close_status = sa.Column(sa.Text, nullable=True) date_created = sa.Column(sa.DateTime, nullable=False, default=datetime.datetime.utcnow) - last_updated = sa.Column(sa.DateTime, nullable=True, + last_updated = sa.Column(sa.DateTime, nullable=False, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) closed_at = sa.Column(sa.DateTime, nullable=True) @@ -1120,7 +1120,7 @@ class PullRequest(BASE): default=sa.func.now(), onupdate=sa.func.now()) - last_updated = sa.Column(sa.DateTime, nullable=True, + last_updated = sa.Column(sa.DateTime, nullable=False, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)