58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
from sqlalchemy import Table, Column, Integer, Unicode, Boolean, MetaData, ForeignKey, Float, Index
|
|
|
|
meta = MetaData()
|
|
|
|
user = Table(
|
|
"users",
|
|
meta,
|
|
Column("id", Integer, primary_key=True),
|
|
Column("opt_out", Boolean, default=False, nullable=False),
|
|
Column("name", Unicode(120), nullable=False, index=True, unique=True),
|
|
)
|
|
|
|
repository = Table(
|
|
"repositories",
|
|
meta,
|
|
Column("id", Integer, primary_key=True),
|
|
Column("user_id", ForeignKey("users.id"), nullable=False),
|
|
Column("name", Unicode(120), nullable=False, index=True),
|
|
Column("stargazers_count", Integer, nullable=False),
|
|
Column("fork", Boolean, nullable=False),
|
|
Column("default_branch", Unicode(80), nullable=False),
|
|
Column("archived", Boolean, nullable=False),
|
|
Column("updated_at", Integer, comment="Value from GitHub API", nullable=False, index=True),
|
|
Column("created_at", Integer, comment="Value from GitHub API", nullable=False),
|
|
Column("size", Integer, nullable=False, comment="Value from GitHub API"),
|
|
Column("private", Boolean, nullable=False),
|
|
)
|
|
|
|
|
|
analyze_task = Table(
|
|
"analyze_tasks",
|
|
meta,
|
|
Column("id", Integer, primary_key=True),
|
|
Column("repository_id", ForeignKey("repositories.id"), nullable=False, index=True),
|
|
Column("duration", Float, nullable=False, index=True),
|
|
Column("created_at", Integer, nullable=False, index=True),
|
|
Column("worker", Unicode(80), nullable=False, index=True),
|
|
Column("level", Integer, nullable=False),
|
|
Column("url", Unicode(200), nullable=False),
|
|
Column("improvement_absolute", Integer, nullable=False, index=True),
|
|
Column("improvement_relative", Float, nullable=False, index=True),
|
|
)
|
|
|
|
|
|
def upgrade(migrate_engine):
|
|
meta.bind = migrate_engine
|
|
meta.reflect()
|
|
user.create()
|
|
repository.create()
|
|
analyze_task.create()
|
|
|
|
|
|
def downgrade(migrate_engine):
|
|
meta.bind = migrate_engine
|
|
user.drop()
|
|
repository.drop()
|
|
analyze_task.drop()
|