fix: resolve null VoteTS columns via migration

Somehow, many aur.al records of PackageVotes do not have a valid VoteTS
value. This migration fixes that issue by setting all null VoteTS
columns to the epoch timestamp.

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2022-02-18 13:02:28 -08:00
parent 1d86b3e210
commit 8387f325f6
No known key found for this signature in database
GPG key ID: F7E46DED420788F3
3 changed files with 53 additions and 13 deletions

View file

@ -0,0 +1,37 @@
"""fix pkgvote votets
Revision ID: d64e5571bc8d
Revises: be7adae47ac3
Create Date: 2022-02-18 12:47:05.322766
"""
from datetime import datetime
import sqlalchemy as sa
from alembic import op
from aurweb import db
from aurweb.models import PackageVote
# revision identifiers, used by Alembic.
revision = 'd64e5571bc8d'
down_revision = 'be7adae47ac3'
branch_labels = None
depends_on = None
table = PackageVote.__tablename__
column = 'VoteTS'
epoch = datetime(1970, 1, 1)
def upgrade():
with db.begin():
records = db.query(PackageVote).filter(PackageVote.VoteTS.is_(None))
for record in records:
record.VoteTS = epoch.timestamp()
op.alter_column(table, column, existing_type=sa.BIGINT(), nullable=False)
def downgrade():
op.alter_column(table, column, existing_type=sa.BIGINT(), nullable=True)