contentdb/migrations/versions/c141a63b2487_.py

39 lines
1013 B
Python

"""empty message
Revision ID: c141a63b2487
Revises: cb6ab141c522
Create Date: 2020-07-09 00:05:39.845465
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import orm, func
from app.models import Package, PackageRelease
# revision identifiers, used by Alembic.
revision = 'c141a63b2487'
down_revision = 'cb6ab141c522'
branch_labels = None
depends_on = None
def upgrade():
op.add_column('package', sa.Column('downloads', sa.Integer(), nullable=False, server_default="0"))
bind = op.get_bind()
session = orm.Session(bind=bind)
for package in session.query(Package).all():
downloads_result = session.query(func.sum(PackageRelease.downloads)).filter_by(package_id=package.id).one_or_none()
downloads = 0 if not downloads_result or not downloads_result[0] else downloads_result[0]
package.downloads = downloads
session.commit()
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('package', 'downloads')
# ### end Alembic commands ###