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()