Skip to content

Commit c7203e1

Browse files
7mochipre-commit-ci[bot]
authored andcommitted
chore: fix alembic migrations (#708)
* chore: fix alembic migrations * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 3a72c82 commit c7203e1

File tree

12 files changed

+112
-31
lines changed

12 files changed

+112
-31
lines changed

alembic/versions/158030827560_base_schema.py

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,12 @@ def upgrade() -> None:
110110
op.create_table(
111111
"comments",
112112
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
113-
sa.Column("target_id", sa.Integer(), nullable=False),
113+
sa.Column(
114+
"target_id",
115+
sa.Integer(),
116+
nullable=False,
117+
comment="replay, map, or set id",
118+
),
114119
sa.Column("target_type", mysql.ENUM("replay", "map", "song"), nullable=False),
115120
sa.Column("userid", sa.Integer(), nullable=False),
116121
sa.Column("time", sa.Integer(), nullable=False),
@@ -119,7 +124,7 @@ def upgrade() -> None:
119124
mysql.VARCHAR(charset="utf8mb3", collation="utf8mb3_general_ci", length=80),
120125
nullable=False,
121126
),
122-
sa.Column("colour", sa.CHAR(length=6), nullable=True),
127+
sa.Column("colour", sa.CHAR(length=6), nullable=True, comment="rgb hex string"),
123128
sa.PrimaryKeyConstraint("id"),
124129
)
125130
op.create_table(
@@ -133,7 +138,12 @@ def upgrade() -> None:
133138
"ingame_logins",
134139
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
135140
sa.Column("userid", sa.Integer(), nullable=False),
136-
sa.Column("ip", sa.String(length=45), nullable=False),
141+
sa.Column(
142+
"ip",
143+
sa.String(length=45),
144+
nullable=False,
145+
comment="maxlen for ipv6",
146+
),
137147
sa.Column("osu_ver", sa.Date(), nullable=False),
138148
sa.Column("osu_stream", sa.String(length=11), nullable=False),
139149
sa.Column("datetime", sa.DateTime(), nullable=False),
@@ -142,7 +152,12 @@ def upgrade() -> None:
142152
op.create_table(
143153
"logs",
144154
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
145-
sa.Column("from", sa.Integer(), nullable=False),
155+
sa.Column(
156+
"from",
157+
sa.Integer(),
158+
nullable=False,
159+
comment="both from and to are playerids",
160+
),
146161
sa.Column("to", sa.Integer(), nullable=False),
147162
sa.Column("action", sa.String(length=32), nullable=False),
148163
sa.Column(
@@ -193,7 +208,7 @@ def upgrade() -> None:
193208
"maps",
194209
sa.Column(
195210
"server",
196-
mysql.ENUM("replay", "map", "song"),
211+
mysql.ENUM("osu!", "private"),
197212
server_default="osu!",
198213
nullable=False,
199214
),
@@ -343,6 +358,12 @@ def upgrade() -> None:
343358
sa.Column("online_checksum", mysql.CHAR(length=32), nullable=False),
344359
sa.PrimaryKeyConstraint("id"),
345360
)
361+
op.create_index(
362+
"scores_fetch_leaderboard_generic_index",
363+
"scores",
364+
["map_md5", "status", "mode"],
365+
unique=False,
366+
)
346367
op.create_index("scores_map_md5_index", "scores", ["map_md5"], unique=False)
347368
op.create_index("scores_mode_index", "scores", ["mode"], unique=False)
348369
op.create_index("scores_mods_index", "scores", ["mods"], unique=False)
@@ -357,12 +378,6 @@ def upgrade() -> None:
357378
op.create_index("scores_score_index", "scores", ["score"], unique=False)
358379
op.create_index("scores_status_index", "scores", ["status"], unique=False)
359380
op.create_index("scores_userid_index", "scores", ["userid"], unique=False)
360-
op.create_index(
361-
"scores_fetch_leaderboard_generic_index",
362-
"scores",
363-
["map_md5", "status", "mode"],
364-
unique=False,
365-
)
366381
op.create_table(
367382
"stats",
368383
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
@@ -406,7 +421,7 @@ def upgrade() -> None:
406421
"tourney_pool_maps",
407422
sa.Column("map_id", sa.Integer(), nullable=False),
408423
sa.Column("pool_id", sa.Integer(), nullable=False),
409-
sa.Column("mods", mysql.BIGINT(), nullable=False),
424+
sa.Column("mods", sa.Integer(), nullable=False),
410425
sa.Column("slot", mysql.TINYINT(), nullable=False),
411426
sa.PrimaryKeyConstraint("map_id", "pool_id"),
412427
)
@@ -425,7 +440,7 @@ def upgrade() -> None:
425440
op.create_table(
426441
"tourney_pools",
427442
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
428-
sa.Column("name", mysql.VARCHAR(length=64), nullable=False),
443+
sa.Column("name", mysql.VARCHAR(length=16), nullable=False),
429444
sa.Column("created_at", sa.DateTime(), nullable=False),
430445
sa.Column("created_by", sa.Integer(), nullable=False),
431446
sa.PrimaryKeyConstraint("id"),
@@ -457,8 +472,8 @@ def upgrade() -> None:
457472
op.create_table(
458473
"users",
459474
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
460-
sa.Column("name", mysql.MEDIUMTEXT(), nullable=False),
461-
sa.Column("safe_name", mysql.MEDIUMTEXT(), nullable=False),
475+
sa.Column("name", mysql.VARCHAR(length=32), nullable=False),
476+
sa.Column("safe_name", mysql.VARCHAR(length=32), nullable=False),
462477
sa.Column("email", sa.String(length=254), nullable=False),
463478
sa.Column("priv", sa.Integer(), server_default="1", nullable=False),
464479
sa.Column("pw_bcrypt", mysql.CHAR(length=60), nullable=False),
@@ -527,7 +542,6 @@ def downgrade() -> None:
527542
op.drop_index("stats_pp_index", table_name="stats")
528543
op.drop_index("stats_mode_index", table_name="stats")
529544
op.drop_table("stats")
530-
op.drop_index("scores_fetch_leaderboard_generic_index", table_name="scores")
531545
op.drop_index("scores_userid_index", table_name="scores")
532546
op.drop_index("scores_status_index", table_name="scores")
533547
op.drop_index("scores_score_index", table_name="scores")
@@ -537,6 +551,7 @@ def downgrade() -> None:
537551
op.drop_index("scores_mods_index", table_name="scores")
538552
op.drop_index("scores_mode_index", table_name="scores")
539553
op.drop_index("scores_map_md5_index", table_name="scores")
554+
op.drop_index("scores_fetch_leaderboard_generic_index", table_name="scores")
540555
op.drop_table("scores")
541556
op.drop_table("ratings")
542557
op.drop_index("maps_status_index", table_name="maps")

app/repositories/comments.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ class CommentsTable(Base):
2929
__tablename__ = "comments"
3030

3131
id = Column("id", Integer, nullable=False, primary_key=True, autoincrement=True)
32-
target_id = Column("target_id", Integer, nullable=False)
32+
target_id = Column(
33+
"target_id",
34+
Integer,
35+
nullable=False,
36+
comment="replay, map, or set id",
37+
)
3338
target_type = Column(ENUM(TargetType), nullable=False)
3439
userid = Column("userid", Integer, nullable=False)
3540
time = Column("time", Integer, nullable=False)
@@ -38,7 +43,7 @@ class CommentsTable(Base):
3843
VARCHAR(charset="utf8mb3", collation="utf8mb3_general_ci", length=80),
3944
nullable=False,
4045
)
41-
colour = Column("colour", CHAR(6), nullable=True)
46+
colour = Column("colour", CHAR(6), nullable=True, comment="rgb hex string")
4247

4348

4449
READ_PARAMS = (

app/repositories/ingame_logins.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class IngameLoginsTable(Base):
2323

2424
id = Column("id", Integer, nullable=False, primary_key=True, autoincrement=True)
2525
userid = Column("userid", Integer, nullable=False)
26-
ip = Column("ip", String(45), nullable=False)
26+
ip = Column("ip", String(45), nullable=False, comment="maxlen for ipv6")
2727
osu_ver = Column("osu_ver", Date, nullable=False)
2828
osu_stream = Column("osu_stream", String(11), nullable=False)
2929
datetime = Column("datetime", DateTime, nullable=False)

app/repositories/logs.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ class LogTable(Base):
2121
__tablename__ = "logs"
2222

2323
id = Column("id", Integer, nullable=False, primary_key=True, autoincrement=True)
24-
_from = Column("from", Integer, nullable=False)
24+
_from = Column(
25+
"from",
26+
Integer,
27+
nullable=False,
28+
comment="both from and to are playerids",
29+
)
2530
to = Column("to", Integer, nullable=False)
2631
action = Column("action", String(32), nullable=False)
2732
msg = Column(

app/repositories/maps.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,15 @@
2727

2828

2929
class Server(StrEnum):
30-
replay = "replay"
31-
map = "map"
32-
song = "song"
30+
osu = "osu!"
31+
private = "private"
3332

3433

3534
class MapsTable(Base):
3635
__tablename__ = "maps"
3736

3837
server = Column(
39-
ENUM(Server),
38+
ENUM(Server, values_callable=lambda enum: [e.value for e in enum]),
4039
nullable=False,
4140
server_default="osu!",
4241
primary_key=True,
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from __future__ import annotations
2+
3+
from sqlalchemy import Column
4+
from sqlalchemy import Index
5+
from sqlalchemy.dialects.mysql import BIGINT
6+
from sqlalchemy.dialects.mysql import ENUM
7+
from sqlalchemy.dialects.mysql import INTEGER
8+
from sqlalchemy.dialects.mysql import TINYINT
9+
from sqlalchemy.dialects.mysql import VARCHAR
10+
11+
from app.repositories import Base
12+
13+
14+
class ModMode(str):
15+
VANILLA = "vanilla"
16+
RELAX = "relax"
17+
AUTOPILOT = "autopilot"
18+
19+
20+
class PerformanceReportsTable(Base):
21+
__tablename__ = "performance_reports"
22+
23+
scoreid = Column(BIGINT(20), nullable=False, primary_key=True)
24+
mod_mode = Column(
25+
ENUM(ModMode),
26+
nullable=False,
27+
server_default=ModMode.VANILLA,
28+
primary_key=True,
29+
)
30+
os = Column(VARCHAR(length=64), nullable=False)
31+
fullscreen = Column(TINYINT(1), nullable=False)
32+
fps_cap = Column(VARCHAR(length=16), nullable=False)
33+
compatibility = Column(TINYINT(1), nullable=False)
34+
version = Column(VARCHAR(length=16), nullable=False)
35+
start_time = Column(INTEGER, nullable=False)
36+
end_time = Column(INTEGER, nullable=False)
37+
frame_count = Column(INTEGER, nullable=False)
38+
spike_frames = Column(INTEGER, nullable=False)
39+
aim_rate = Column(INTEGER, nullable=False)
40+
completion = Column(TINYINT(1), nullable=False)
41+
identifier = Column(VARCHAR(length=128), nullable=True)
42+
average_frametime = Column(INTEGER, nullable=False)

app/repositories/startups.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from __future__ import annotations
2+
3+
from sqlalchemy import Column
4+
from sqlalchemy import DateTime
5+
from sqlalchemy.dialects.mysql import INTEGER
6+
from sqlalchemy.dialects.mysql import TINYINT
7+
8+
from app.repositories import Base
9+
10+
11+
class StartupsTable(Base):
12+
__tablename__ = "startups"
13+
14+
id = Column(INTEGER, autoincrement=True, nullable=False, primary_key=True)
15+
ver_major = Column(TINYINT, nullable=False)
16+
ver_minor = Column(TINYINT, nullable=False)
17+
ver_micro = Column(TINYINT, nullable=False)
18+
datetime = Column(DateTime, nullable=False)

app/repositories/tourney_pool_maps.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from sqlalchemy import delete
1010
from sqlalchemy import insert
1111
from sqlalchemy import select
12-
from sqlalchemy.dialects.mysql import BIGINT
1312
from sqlalchemy.dialects.mysql import TINYINT
1413

1514
import app.state.services
@@ -21,7 +20,7 @@ class TourneyPoolMapsTable(Base):
2120

2221
map_id = Column("map_id", Integer, nullable=False, primary_key=True)
2322
pool_id = Column("pool_id", Integer, nullable=False, primary_key=True)
24-
mods = Column("mods", BIGINT, nullable=False)
23+
mods = Column("mods", Integer, nullable=False)
2524
slot = Column("slot", TINYINT, nullable=False)
2625

2726
__table_args__ = (

app/repositories/tourney_pools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class TourneyPoolsTable(Base):
2222
__tablename__ = "tourney_pools"
2323

2424
id = Column("id", Integer, nullable=False, primary_key=True, autoincrement=True)
25-
name = Column("name", VARCHAR(length=64), nullable=False)
25+
name = Column("name", VARCHAR(length=16), nullable=False)
2626
created_at = Column("created_at", DateTime, nullable=False)
2727
created_by = Column("created_by", Integer, nullable=False)
2828

app/repositories/users.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ class UsersTable(Base):
2727
__tablename__ = "users"
2828

2929
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
30-
name = Column(MEDIUMTEXT, nullable=False)
31-
safe_name = Column(MEDIUMTEXT, nullable=False)
30+
name = Column(VARCHAR(length=32), nullable=False)
31+
safe_name = Column(VARCHAR(length=32), nullable=False)
3232
email = Column(String(254), nullable=False)
3333
priv = Column(Integer, nullable=False, server_default="1")
3434
pw_bcrypt = Column(CHAR(length=60), nullable=False)

0 commit comments

Comments
 (0)