From 336bdc12bd15e4c042e0af3d2802888e8d4b2547 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Nov 30 2016 11:41:57 +0000 Subject: Adjust the alembic migration script to fill last_updated on existing rows This allows having a value for all the existing tickets and pull-requests when adding the last_updated column to the database. --- 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 8ad60a1..89cf9a9 100644 --- a/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py +++ b/alembic/versions/114d3a68c1fd_add_updated_on_column_to_issues.py @@ -21,15 +21,35 @@ def upgrade(): op.add_column( 'issues', sa.Column('last_updated', sa.DateTime, nullable=True, - default=sa.datetime.datetime.utcnow, + default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) ) + op.execute(''' +UPDATE "issues" SET last_updated=o_date +FROM ( + SELECT issue_uid, GREATEST(date_created, edited_on) AS o_date + FROM issue_comments + ORDER BY o_date DESC +) AS subq +WHERE "issues".uid = issue_uid;''') + op.execute('''UPDATE "issues" SET last_updated=date_created ''' + '''WHERE last_updated IS NULL;''') op.add_column( 'pull_requests', sa.Column('last_updated', sa.DateTime, nullable=True, - default=sa.datetime.datetime.utcnow, + default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) ) + op.execute(''' +UPDATE "pull_requests" SET last_updated=o_date +FROM ( + SELECT pull_request_uid, GREATEST(date_created, edited_on) AS o_date + FROM pull_request_comments + ORDER BY o_date DESC +) AS subq +WHERE "pull_requests".uid = pull_request_uid;''') + op.execute('''UPDATE "pull_requests" SET last_updated=date_created ''' + '''WHERE last_updated IS NULL;''') def downgrade():