feat: draft version
This commit is contained in:
54
db_repo/versions/001_Analyze_tables.py
Normal file
54
db_repo/versions/001_Analyze_tables.py
Normal file
@@ -0,0 +1,54 @@
|
||||
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()
|
||||
24
db_repo/versions/002_unique_repositories_index.py
Normal file
24
db_repo/versions/002_unique_repositories_index.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from sqlalchemy import Table, MetaData, Index
|
||||
|
||||
meta = MetaData()
|
||||
|
||||
|
||||
def _get_indices(meta):
|
||||
meta.reflect()
|
||||
Users = Table("users", meta, autoload=True, autoload_with=meta.bind)
|
||||
Repositories = Table("users", meta, autoload=True, autoload_with=meta.bind)
|
||||
return [
|
||||
Index("repositories_name_unique_id", Users.c.id, Repositories.c.name, unique=True)
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
for idx in _get_indices(meta):
|
||||
idx.create()
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
for idx in _get_indices(meta):
|
||||
idx.drop()
|
||||
26
db_repo/versions/003_clone_duration_column.py
Normal file
26
db_repo/versions/003_clone_duration_column.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from sqlalchemy import Table, MetaData, Column, Float
|
||||
|
||||
meta = MetaData()
|
||||
|
||||
|
||||
def _get_table(meta):
|
||||
meta.reflect()
|
||||
AnalyzeTask = Table("analyze_tasks", meta, autoload=True, autoload_with=meta.bind)
|
||||
return AnalyzeTask
|
||||
|
||||
|
||||
def _get_column():
|
||||
return Column("clone_duration", Float, nullable=False, default=0, server_default="0")
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
table = _get_table(meta)
|
||||
col = _get_column()
|
||||
col.create(table, populate_default=True)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
table = _get_table(meta)
|
||||
table.c.clone_duration.drop()
|
||||
38
db_repo/versions/004_task_status_column.py
Normal file
38
db_repo/versions/004_task_status_column.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from sqlalchemy import Table, MetaData, Column, Integer, Index
|
||||
|
||||
meta = MetaData()
|
||||
|
||||
|
||||
def _get_table(meta):
|
||||
meta.reflect()
|
||||
AnalyzeTask = Table("analyze_tasks", meta, autoload=True, autoload_with=meta.bind)
|
||||
return AnalyzeTask
|
||||
|
||||
|
||||
def _get_column():
|
||||
return Column("status", Integer, nullable=False, default=0, server_default="2")
|
||||
|
||||
|
||||
def _get_indices(meta):
|
||||
meta.reflect()
|
||||
AnalyzeTask = Table("analyze_tasks", meta, autoload=True, autoload_with=meta.bind)
|
||||
return [
|
||||
Index("analyze_tasks_status_idx", AnalyzeTask.c.status, unique=False)
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
table = _get_table(meta)
|
||||
col = _get_column()
|
||||
col.create(table, populate_default=True)
|
||||
for idx in _get_indices(meta):
|
||||
idx.create()
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
meta.bind = migrate_engine
|
||||
table = _get_table(meta)
|
||||
table.c.status.drop()
|
||||
for idx in _get_indices(meta):
|
||||
idx.drop()
|
||||
0
db_repo/versions/__init__.py
Normal file
0
db_repo/versions/__init__.py
Normal file
Reference in New Issue
Block a user