add indexes to downloads tables

This commit is contained in:
crflynn
2018-05-14 22:32:59 -04:00
parent 78b0fe3472
commit 16e2942934
3 changed files with 58 additions and 5 deletions

View File

@@ -0,0 +1,37 @@
"""add indexes
Revision ID: a91799876ec2
Revises: e65ba8f3cdcf
Create Date: 2018-05-14 22:27:11.123192
"""
# flake8: noqa
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'a91799876ec2'
down_revision = 'e65ba8f3cdcf'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_index(op.f('ix_overall_package'), 'overall', ['package'], unique=False)
op.create_index(op.f('ix_python_major_package'), 'python_major', ['package'], unique=False)
op.create_index(op.f('ix_python_minor_package'), 'python_minor', ['package'], unique=False)
op.create_index(op.f('ix_recent_package'), 'recent', ['package'], unique=False)
op.create_index(op.f('ix_system_package'), 'system', ['package'], unique=False)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(op.f('ix_system_package'), table_name='system')
op.drop_index(op.f('ix_recent_package'), table_name='recent')
op.drop_index(op.f('ix_python_minor_package'), table_name='python_minor')
op.drop_index(op.f('ix_python_major_package'), table_name='python_major')
op.drop_index(op.f('ix_overall_package'), table_name='overall')
# ### end Alembic commands ###

View File

@@ -10,7 +10,9 @@ class OverallDownloadCount(Model):
__tablename__ = "overall" __tablename__ = "overall"
date = Column(db.Date, primary_key=True, nullable=False) date = Column(db.Date, primary_key=True, nullable=False)
package = Column(db.String(128), primary_key=True, nullable=False) package = Column(
db.String(128), primary_key=True, nullable=False, index=True
)
# with_mirrors or without_mirrors # with_mirrors or without_mirrors
category = Column(db.String(16), primary_key=True, nullable=False) category = Column(db.String(16), primary_key=True, nullable=False)
downloads = Column(db.Integer(), nullable=False) downloads = Column(db.Integer(), nullable=False)
@@ -27,7 +29,9 @@ class PythonMajorDownloadCount(Model):
__tablename__ = "python_major" __tablename__ = "python_major"
date = Column(db.Date, primary_key=True, nullable=False) date = Column(db.Date, primary_key=True, nullable=False)
package = Column(db.String(128), primary_key=True, nullable=False) package = Column(
db.String(128), primary_key=True, nullable=False, index=True
)
# python_major version, 2 or 3 (or null) # python_major version, 2 or 3 (or null)
category = Column(db.String(4), primary_key=True, nullable=True) category = Column(db.String(4), primary_key=True, nullable=True)
downloads = Column(db.Integer(), nullable=False) downloads = Column(db.Integer(), nullable=False)
@@ -44,7 +48,9 @@ class PythonMinorDownloadCount(Model):
__tablename__ = "python_minor" __tablename__ = "python_minor"
date = Column(db.Date, primary_key=True) date = Column(db.Date, primary_key=True)
package = Column(db.String(128), primary_key=True, nullable=False) package = Column(
db.String(128), primary_key=True, nullable=False, index=True
)
# python_minor version, e.g. 2.7 or 3.6 (or null) # python_minor version, e.g. 2.7 or 3.6 (or null)
category = Column(db.String(4), primary_key=True, nullable=True) category = Column(db.String(4), primary_key=True, nullable=True)
downloads = Column(db.Integer(), nullable=False) downloads = Column(db.Integer(), nullable=False)
@@ -63,7 +69,9 @@ class RecentDownloadCount(Model):
__tablename__ = "recent" __tablename__ = "recent"
package = Column(db.String(128), primary_key=True, nullable=False) package = Column(
db.String(128), primary_key=True, nullable=False, index=True
)
# recency, e.g. day, week, month # recency, e.g. day, week, month
category = Column(db.String(8), primary_key=True, nullable=False) category = Column(db.String(8), primary_key=True, nullable=False)
downloads = Column(db.BigInteger(), nullable=False) downloads = Column(db.BigInteger(), nullable=False)
@@ -80,7 +88,9 @@ class SystemDownloadCount(Model):
__tablename__ = "system" __tablename__ = "system"
date = Column(db.Date, primary_key=True) date = Column(db.Date, primary_key=True)
package = Column(db.String(128), primary_key=True, nullable=False) package = Column(
db.String(128), primary_key=True, nullable=False, index=True
)
# system, e.g. Windows or Linux or Darwin (or null) # system, e.g. Windows or Linux or Darwin (or null)
category = Column(db.String(8), primary_key=True, nullable=True) category = Column(db.String(8), primary_key=True, nullable=True)
downloads = Column(db.Integer(), nullable=False) downloads = Column(db.Integer(), nullable=False)

6
scripts/run_migrate.sh Normal file
View File

@@ -0,0 +1,6 @@
export ENV=prod
set -o allexport
source pypistats/secret/$ENV.env
set +o allexport
# flask db revision --message "message" --autogenerate
# flask db upgrade