]> git.lizzy.rs Git - cheatdb.git/blob - migrations/versions/c141a63b2487_.py
571eef62d40943c46e34546f593f387a7e17ec6a
[cheatdb.git] / migrations / versions / c141a63b2487_.py
1 """empty message
2
3 Revision ID: c141a63b2487
4 Revises: cb6ab141c522
5 Create Date: 2020-07-09 00:05:39.845465
6
7 """
8 from alembic import op
9 import sqlalchemy as sa
10 from sqlalchemy import orm, func
11 from app.models import Package, PackageRelease
12
13
14 # revision identifiers, used by Alembic.
15 revision = 'c141a63b2487'
16 down_revision = 'cb6ab141c522'
17 branch_labels = None
18 depends_on = None
19
20
21 def upgrade():
22         op.add_column('package', sa.Column('downloads', sa.Integer(), nullable=False, server_default="0"))
23
24         bind = op.get_bind()
25         session = orm.Session(bind=bind)
26
27         for package in session.query(Package).all():
28                 downloads_result = session.query(func.sum(PackageRelease.downloads)).filter_by(package_id=package.id).one_or_none()
29                 downloads = 0 if not downloads_result or not downloads_result[0] else downloads_result[0]
30                 package.downloads = downloads
31
32         session.commit()
33
34
35 def downgrade():
36         # ### commands auto generated by Alembic - please adjust! ###
37         op.drop_column('package', 'downloads')
38         # ### end Alembic commands ###