972 lines
40 KiB
Python
972 lines
40 KiB
Python
"""init
|
|
|
|
Revision ID: fdb3822a30ba
|
|
Revises:
|
|
Create Date: 2025-08-10 04:30:58.443568
|
|
|
|
"""
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
import sqlmodel
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = "fdb3822a30ba"
|
|
down_revision: str | Sequence[str] | None = None
|
|
branch_labels: str | Sequence[str] | None = None
|
|
depends_on: str | Sequence[str] | None = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Upgrade schema."""
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table(
|
|
"beatmapsets",
|
|
sa.Column("artist", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("artist_unicode", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("covers", sa.JSON(), nullable=True),
|
|
sa.Column("creator", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("nsfw", sa.Boolean(), nullable=False),
|
|
sa.Column("play_count", sa.Integer(), nullable=False),
|
|
sa.Column("preview_url", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("source", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("spotlight", sa.Boolean(), nullable=False),
|
|
sa.Column("title", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("title_unicode", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("user_id", sa.Integer(), nullable=False),
|
|
sa.Column("video", sa.Boolean(), nullable=False),
|
|
sa.Column("current_nominations", sa.JSON(), nullable=True),
|
|
sa.Column("description", sa.JSON(), nullable=True),
|
|
sa.Column("pack_tags", sa.JSON(), nullable=True),
|
|
sa.Column("ratings", sa.JSON(), nullable=True),
|
|
sa.Column("track_id", sa.Integer(), nullable=True),
|
|
sa.Column("bpm", sa.Float(), nullable=False),
|
|
sa.Column("can_be_hyped", sa.Boolean(), nullable=False),
|
|
sa.Column("discussion_locked", sa.Boolean(), nullable=False),
|
|
sa.Column("last_updated", sa.DateTime(), nullable=True),
|
|
sa.Column("ranked_date", sa.DateTime(), nullable=True),
|
|
sa.Column("storyboard", sa.Boolean(), nullable=False),
|
|
sa.Column("submitted_date", sa.DateTime(), nullable=True),
|
|
sa.Column("tags", sa.Text(), nullable=True),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column(
|
|
"beatmap_status",
|
|
sa.Enum(
|
|
"GRAVEYARD",
|
|
"WIP",
|
|
"PENDING",
|
|
"RANKED",
|
|
"APPROVED",
|
|
"QUALIFIED",
|
|
"LOVED",
|
|
name="beatmaprankstatus",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.Column(
|
|
"beatmap_genre",
|
|
sa.Enum(
|
|
"ANY",
|
|
"UNSPECIFIED",
|
|
"VIDEO_GAME",
|
|
"ANIME",
|
|
"ROCK",
|
|
"POP",
|
|
"OTHER",
|
|
"NOVELTY",
|
|
"HIP_HOP",
|
|
"ELECTRONIC",
|
|
"METAL",
|
|
"CLASSICAL",
|
|
"FOLK",
|
|
"JAZZ",
|
|
name="genre",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.Column(
|
|
"beatmap_language",
|
|
sa.Enum(
|
|
"ANY",
|
|
"UNSPECIFIED",
|
|
"ENGLISH",
|
|
"JAPANESE",
|
|
"CHINESE",
|
|
"INSTRUMENTAL",
|
|
"KOREAN",
|
|
"FRENCH",
|
|
"GERMAN",
|
|
"SWEDISH",
|
|
"ITALIAN",
|
|
"SPANISH",
|
|
"RUSSIAN",
|
|
"POLISH",
|
|
"OTHER",
|
|
name="language",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.Column("nominations_required", sa.Integer(), nullable=False),
|
|
sa.Column("nominations_current", sa.Integer(), nullable=False),
|
|
sa.Column("hype_current", sa.Integer(), nullable=False),
|
|
sa.Column("hype_required", sa.Integer(), nullable=False),
|
|
sa.Column("availability_info", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("download_disabled", sa.Boolean(), nullable=False),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_beatmapsets_artist"), "beatmapsets", ["artist"], unique=False)
|
|
op.create_index(
|
|
op.f("ix_beatmapsets_artist_unicode"),
|
|
"beatmapsets",
|
|
["artist_unicode"],
|
|
unique=False,
|
|
)
|
|
op.create_index(op.f("ix_beatmapsets_id"), "beatmapsets", ["id"], unique=False)
|
|
op.create_table(
|
|
"lazer_users",
|
|
sa.Column("avatar_url", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("country_code", sqlmodel.sql.sqltypes.AutoString(length=2), nullable=False),
|
|
sa.Column("is_active", sa.Boolean(), nullable=False),
|
|
sa.Column("is_bot", sa.Boolean(), nullable=False),
|
|
sa.Column("is_supporter", sa.Boolean(), nullable=False),
|
|
sa.Column("last_visit", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("pm_friends_only", sa.Boolean(), nullable=False),
|
|
sa.Column("profile_colour", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("username", sqlmodel.sql.sqltypes.AutoString(length=32), nullable=False),
|
|
sa.Column("page", sa.JSON(), nullable=True),
|
|
sa.Column("previous_usernames", sa.JSON(), nullable=True),
|
|
sa.Column("support_level", sa.Integer(), nullable=False),
|
|
sa.Column("badges", sa.JSON(), nullable=True),
|
|
sa.Column("is_restricted", sa.Boolean(), nullable=False),
|
|
sa.Column("cover", sa.JSON(), nullable=True),
|
|
sa.Column("beatmap_playcounts_count", sa.Integer(), nullable=False),
|
|
sa.Column(
|
|
"playmode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("discord", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("has_supported", sa.Boolean(), nullable=False),
|
|
sa.Column("interests", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("join_date", sa.DateTime(), nullable=False),
|
|
sa.Column("location", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("max_blocks", sa.Integer(), nullable=False),
|
|
sa.Column("max_friends", sa.Integer(), nullable=False),
|
|
sa.Column("occupation", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("playstyle", sa.JSON(), nullable=True),
|
|
sa.Column("profile_hue", sa.Integer(), nullable=True),
|
|
sa.Column("profile_order", sa.JSON(), nullable=True),
|
|
sa.Column("title", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("title_url", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("twitter", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("website", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("comments_count", sa.Integer(), nullable=False),
|
|
sa.Column("post_count", sa.Integer(), nullable=False),
|
|
sa.Column("is_admin", sa.Boolean(), nullable=False),
|
|
sa.Column("is_gmt", sa.Boolean(), nullable=False),
|
|
sa.Column("is_qat", sa.Boolean(), nullable=False),
|
|
sa.Column("is_bng", sa.Boolean(), nullable=False),
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("email", sqlmodel.sql.sqltypes.AutoString(length=254), nullable=False),
|
|
sa.Column("priv", sa.Integer(), nullable=False),
|
|
sa.Column("pw_bcrypt", sqlmodel.sql.sqltypes.AutoString(length=60), nullable=False),
|
|
sa.Column("silence_end_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("donor_end_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_lazer_users_country_code"),
|
|
"lazer_users",
|
|
["country_code"],
|
|
unique=False,
|
|
)
|
|
op.create_index(op.f("ix_lazer_users_email"), "lazer_users", ["email"], unique=True)
|
|
op.create_index(op.f("ix_lazer_users_id"), "lazer_users", ["id"], unique=False)
|
|
op.create_index(op.f("ix_lazer_users_username"), "lazer_users", ["username"], unique=True)
|
|
op.create_table(
|
|
"teams",
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sqlmodel.sql.sqltypes.AutoString(length=100), nullable=False),
|
|
sa.Column("short_name", sqlmodel.sql.sqltypes.AutoString(length=10), nullable=False),
|
|
sa.Column("flag_url", sqlmodel.sql.sqltypes.AutoString(length=500), nullable=True),
|
|
sa.Column("created_at", sa.DateTime(), nullable=True),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_teams_id"), "teams", ["id"], unique=False)
|
|
op.create_table(
|
|
"beatmaps",
|
|
sa.Column("url", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column(
|
|
"mode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("difficulty_rating", sa.Float(), nullable=False),
|
|
sa.Column("total_length", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.Integer(), nullable=False),
|
|
sa.Column("version", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("checksum", sa.VARCHAR(length=32), nullable=True),
|
|
sa.Column("current_user_playcount", sa.Integer(), nullable=False),
|
|
sa.Column("max_combo", sa.Integer(), nullable=False),
|
|
sa.Column("ar", sa.Float(), nullable=False),
|
|
sa.Column("cs", sa.Float(), nullable=False),
|
|
sa.Column("drain", sa.Float(), nullable=False),
|
|
sa.Column("accuracy", sa.Float(), nullable=False),
|
|
sa.Column("bpm", sa.Float(), nullable=False),
|
|
sa.Column("count_circles", sa.Integer(), nullable=False),
|
|
sa.Column("count_sliders", sa.Integer(), nullable=False),
|
|
sa.Column("count_spinners", sa.Integer(), nullable=False),
|
|
sa.Column("deleted_at", sa.DateTime(), nullable=True),
|
|
sa.Column("hit_length", sa.Integer(), nullable=False),
|
|
sa.Column("last_updated", sa.DateTime(), nullable=True),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("beatmapset_id", sa.Integer(), nullable=False),
|
|
sa.Column(
|
|
"beatmap_status",
|
|
sa.Enum(
|
|
"GRAVEYARD",
|
|
"WIP",
|
|
"PENDING",
|
|
"RANKED",
|
|
"APPROVED",
|
|
"QUALIFIED",
|
|
"LOVED",
|
|
name="beatmaprankstatus",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmapset_id"],
|
|
["beatmapsets.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_beatmaps_beatmapset_id"), "beatmaps", ["beatmapset_id"], unique=False)
|
|
op.create_index(op.f("ix_beatmaps_checksum"), "beatmaps", ["checksum"], unique=False)
|
|
op.create_index(op.f("ix_beatmaps_id"), "beatmaps", ["id"], unique=False)
|
|
op.create_table(
|
|
"daily_challenge_stats",
|
|
sa.Column("daily_streak_best", sa.Integer(), nullable=False),
|
|
sa.Column("daily_streak_current", sa.Integer(), nullable=False),
|
|
sa.Column("last_update", sa.DateTime(), nullable=True),
|
|
sa.Column("last_weekly_streak", sa.DateTime(), nullable=True),
|
|
sa.Column("playcount", sa.Integer(), nullable=False),
|
|
sa.Column("top_10p_placements", sa.Integer(), nullable=False),
|
|
sa.Column("top_50p_placements", sa.Integer(), nullable=False),
|
|
sa.Column("weekly_streak_best", sa.Integer(), nullable=False),
|
|
sa.Column("weekly_streak_current", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("user_id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_daily_challenge_stats_user_id"),
|
|
"daily_challenge_stats",
|
|
["user_id"],
|
|
unique=True,
|
|
)
|
|
op.create_table(
|
|
"favourite_beatmapset",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("beatmapset_id", sa.Integer(), nullable=True),
|
|
sa.Column("date", sa.DateTime(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmapset_id"],
|
|
["beatmapsets.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_favourite_beatmapset_beatmapset_id"),
|
|
"favourite_beatmapset",
|
|
["beatmapset_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_favourite_beatmapset_user_id"),
|
|
"favourite_beatmapset",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"lazer_user_achievements",
|
|
sa.Column("achievement_id", sa.Integer(), nullable=False),
|
|
sa.Column("achieved_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("achievement_id", "id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_lazer_user_achievements_id"),
|
|
"lazer_user_achievements",
|
|
["id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"lazer_user_statistics",
|
|
sa.Column(
|
|
"mode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("count_100", sa.BigInteger(), nullable=True),
|
|
sa.Column("count_300", sa.BigInteger(), nullable=True),
|
|
sa.Column("count_50", sa.BigInteger(), nullable=True),
|
|
sa.Column("count_miss", sa.BigInteger(), nullable=True),
|
|
sa.Column("global_rank", sa.Integer(), nullable=True),
|
|
sa.Column("country_rank", sa.Integer(), nullable=True),
|
|
sa.Column("pp", sa.Float(), nullable=False),
|
|
sa.Column("ranked_score", sa.Integer(), nullable=False),
|
|
sa.Column("hit_accuracy", sa.Float(), nullable=False),
|
|
sa.Column("total_score", sa.BigInteger(), nullable=True),
|
|
sa.Column("total_hits", sa.BigInteger(), nullable=True),
|
|
sa.Column("maximum_combo", sa.Integer(), nullable=False),
|
|
sa.Column("play_count", sa.Integer(), nullable=False),
|
|
sa.Column("play_time", sa.BigInteger(), nullable=True),
|
|
sa.Column("replays_watched_by_others", sa.Integer(), nullable=False),
|
|
sa.Column("is_ranked", sa.Boolean(), nullable=False),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("grade_ss", sa.Integer(), nullable=False),
|
|
sa.Column("grade_ssh", sa.Integer(), nullable=False),
|
|
sa.Column("grade_s", sa.Integer(), nullable=False),
|
|
sa.Column("grade_sh", sa.Integer(), nullable=False),
|
|
sa.Column("grade_a", sa.Integer(), nullable=False),
|
|
sa.Column("level_current", sa.Integer(), nullable=False),
|
|
sa.Column("level_progress", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_lazer_user_statistics_user_id"),
|
|
"lazer_user_statistics",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"monthly_playcounts",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("year", sa.Integer(), nullable=False),
|
|
sa.Column("month", sa.Integer(), nullable=False),
|
|
sa.Column("playcount", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_monthly_playcounts_month"),
|
|
"monthly_playcounts",
|
|
["month"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_monthly_playcounts_user_id"),
|
|
"monthly_playcounts",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(op.f("ix_monthly_playcounts_year"), "monthly_playcounts", ["year"], unique=False)
|
|
op.create_table(
|
|
"oauth_tokens",
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("access_token", sqlmodel.sql.sqltypes.AutoString(length=500), nullable=False),
|
|
sa.Column(
|
|
"refresh_token",
|
|
sqlmodel.sql.sqltypes.AutoString(length=500),
|
|
nullable=False,
|
|
),
|
|
sa.Column("token_type", sqlmodel.sql.sqltypes.AutoString(length=20), nullable=False),
|
|
sa.Column("scope", sqlmodel.sql.sqltypes.AutoString(length=100), nullable=False),
|
|
sa.Column("expires_at", sa.DateTime(), nullable=True),
|
|
sa.Column("created_at", sa.DateTime(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
sa.UniqueConstraint("access_token"),
|
|
sa.UniqueConstraint("refresh_token"),
|
|
)
|
|
op.create_index(op.f("ix_oauth_tokens_id"), "oauth_tokens", ["id"], unique=False)
|
|
op.create_index(op.f("ix_oauth_tokens_user_id"), "oauth_tokens", ["user_id"], unique=False)
|
|
op.create_table(
|
|
"relationship",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("target_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("type", sa.Enum("FOLLOW", "BLOCK", name="relationshiptype"), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["target_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_relationship_target_id"), "relationship", ["target_id"], unique=False)
|
|
op.create_index(op.f("ix_relationship_user_id"), "relationship", ["user_id"], unique=False)
|
|
op.create_table(
|
|
"rooms",
|
|
sa.Column("name", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column(
|
|
"category",
|
|
sa.Enum(
|
|
"NORMAL",
|
|
"SPOTLIGHT",
|
|
"FEATURED_ARTIST",
|
|
"DAILY_CHALLENGE",
|
|
"REALTIME",
|
|
name="roomcategory",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.Column("duration", sa.Integer(), nullable=True),
|
|
sa.Column("starts_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("ends_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("participant_count", sa.Integer(), nullable=False),
|
|
sa.Column("max_attempts", sa.Integer(), nullable=True),
|
|
sa.Column(
|
|
"type",
|
|
sa.Enum("PLAYLISTS", "HEAD_TO_HEAD", "TEAM_VERSUS", name="matchtype"),
|
|
nullable=False,
|
|
),
|
|
sa.Column(
|
|
"queue_mode",
|
|
sa.Enum("HOST_ONLY", "ALL_PLAYERS", "ALL_PLAYERS_ROUND_ROBIN", name="queuemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("auto_skip", sa.Boolean(), nullable=False),
|
|
sa.Column("auto_start_duration", sa.Integer(), nullable=False),
|
|
sa.Column("status", sa.Enum("IDLE", "PLAYING", name="roomstatus"), nullable=False),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("host_id", sa.BigInteger(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["host_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_rooms_category"), "rooms", ["category"], unique=False)
|
|
op.create_index(op.f("ix_rooms_host_id"), "rooms", ["host_id"], unique=False)
|
|
op.create_index(op.f("ix_rooms_id"), "rooms", ["id"], unique=False)
|
|
op.create_index(op.f("ix_rooms_name"), "rooms", ["name"], unique=False)
|
|
op.create_table(
|
|
"team_members",
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("team_id", sa.Integer(), nullable=False),
|
|
sa.Column("joined_at", sa.DateTime(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["team_id"],
|
|
["teams.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_team_members_id"), "team_members", ["id"], unique=False)
|
|
op.create_table(
|
|
"user_account_history",
|
|
sa.Column("description", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
|
sa.Column("length", sa.Integer(), nullable=False),
|
|
sa.Column("permanent", sa.Boolean(), nullable=False),
|
|
sa.Column("timestamp", sa.DateTime(), nullable=False),
|
|
sa.Column(
|
|
"type",
|
|
sa.Enum(
|
|
"NOTE",
|
|
"RESTRICTION",
|
|
"SLIENCE",
|
|
"TOURNAMENT_BAN",
|
|
name="useraccounthistorytype",
|
|
),
|
|
nullable=False,
|
|
),
|
|
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_user_account_history_id"), "user_account_history", ["id"], unique=False)
|
|
op.create_index(
|
|
op.f("ix_user_account_history_user_id"),
|
|
"user_account_history",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"beatmap_playcounts",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.Column("playcount", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_beatmap_playcounts_beatmap_id"),
|
|
"beatmap_playcounts",
|
|
["beatmap_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_beatmap_playcounts_user_id"),
|
|
"beatmap_playcounts",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"item_attempts_count",
|
|
sa.Column("room_id", sa.Integer(), nullable=False),
|
|
sa.Column("attempts", sa.Integer(), nullable=False),
|
|
sa.Column("completed", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("accuracy", sa.Float(), nullable=False),
|
|
sa.Column("pp", sa.Float(), nullable=False),
|
|
sa.Column("total_score", sa.Integer(), nullable=False),
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["room_id"],
|
|
["rooms.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_item_attempts_count_room_id"),
|
|
"item_attempts_count",
|
|
["room_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_item_attempts_count_user_id"),
|
|
"item_attempts_count",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"multiplayer_events",
|
|
sa.Column("playlist_item_id", sa.Integer(), nullable=True),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("created_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("event_type", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("room_id", sa.Integer(), nullable=False),
|
|
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("event_detail", sa.JSON(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["room_id"],
|
|
["rooms.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_multiplayer_events_event_type"),
|
|
"multiplayer_events",
|
|
["event_type"],
|
|
unique=False,
|
|
)
|
|
op.create_index(op.f("ix_multiplayer_events_id"), "multiplayer_events", ["id"], unique=False)
|
|
op.create_index(
|
|
op.f("ix_multiplayer_events_room_id"),
|
|
"multiplayer_events",
|
|
["room_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_multiplayer_events_user_id"),
|
|
"multiplayer_events",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"room_participated_users",
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("room_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=False),
|
|
sa.Column("joined_at", sa.DateTime(timezone=True), nullable=False),
|
|
sa.Column("left_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["room_id"],
|
|
["rooms.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_table(
|
|
"room_playlists",
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("owner_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("ruleset_id", sa.Integer(), nullable=False),
|
|
sa.Column("expired", sa.Boolean(), nullable=False),
|
|
sa.Column("playlist_order", sa.Integer(), nullable=False),
|
|
sa.Column("played_at", sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column("allowed_mods", sa.JSON(), nullable=True),
|
|
sa.Column("required_mods", sa.JSON(), nullable=True),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.Column("freestyle", sa.Boolean(), nullable=False),
|
|
sa.Column("db_id", sa.Integer(), nullable=False),
|
|
sa.Column("room_id", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["owner_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["room_id"],
|
|
["rooms.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("db_id"),
|
|
)
|
|
op.create_index(op.f("ix_room_playlists_db_id"), "room_playlists", ["db_id"], unique=False)
|
|
op.create_index(op.f("ix_room_playlists_id"), "room_playlists", ["id"], unique=False)
|
|
op.create_table(
|
|
"score_tokens",
|
|
sa.Column("score_id", sa.BigInteger(), nullable=True),
|
|
sa.Column(
|
|
"ruleset_id",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("playlist_item_id", sa.Integer(), nullable=True),
|
|
sa.Column("created_at", sa.DateTime(), nullable=True),
|
|
sa.Column("updated_at", sa.DateTime(), nullable=True),
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(
|
|
"idx_user_playlist",
|
|
"score_tokens",
|
|
["user_id", "playlist_item_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(op.f("ix_score_tokens_id"), "score_tokens", ["id"], unique=False)
|
|
op.create_table(
|
|
"scores",
|
|
sa.Column("accuracy", sa.Float(), nullable=False),
|
|
sa.Column("map_md5", sqlmodel.sql.sqltypes.AutoString(length=32), nullable=False),
|
|
sa.Column("build_id", sa.Integer(), nullable=True),
|
|
sa.Column("classic_total_score", sa.BigInteger(), nullable=True),
|
|
sa.Column("ended_at", sa.DateTime(), nullable=True),
|
|
sa.Column("has_replay", sa.Boolean(), nullable=False),
|
|
sa.Column("max_combo", sa.Integer(), nullable=False),
|
|
sa.Column("mods", sa.JSON(), nullable=True),
|
|
sa.Column("passed", sa.Boolean(), nullable=False),
|
|
sa.Column("playlist_item_id", sa.Integer(), nullable=True),
|
|
sa.Column("pp", sa.Float(), nullable=False),
|
|
sa.Column("preserve", sa.Boolean(), nullable=False),
|
|
sa.Column(
|
|
"rank",
|
|
sa.Enum("X", "XH", "S", "SH", "A", "B", "C", "D", "F", name="rank"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("room_id", sa.Integer(), nullable=True),
|
|
sa.Column("started_at", sa.DateTime(), nullable=True),
|
|
sa.Column("total_score", sa.BigInteger(), nullable=True),
|
|
sa.Column("total_score_without_mods", sa.BigInteger(), nullable=True),
|
|
sa.Column("type", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("n300", sa.Integer(), nullable=False),
|
|
sa.Column("n100", sa.Integer(), nullable=False),
|
|
sa.Column("n50", sa.Integer(), nullable=False),
|
|
sa.Column("nmiss", sa.Integer(), nullable=False),
|
|
sa.Column("ngeki", sa.Integer(), nullable=False),
|
|
sa.Column("nkatu", sa.Integer(), nullable=False),
|
|
sa.Column("nlarge_tick_miss", sa.Integer(), nullable=True),
|
|
sa.Column("nlarge_tick_hit", sa.Integer(), nullable=True),
|
|
sa.Column("nslider_tail_hit", sa.Integer(), nullable=True),
|
|
sa.Column("nsmall_tick_hit", sa.Integer(), nullable=True),
|
|
sa.Column(
|
|
"gamemode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.create_index(op.f("ix_scores_beatmap_id"), "scores", ["beatmap_id"], unique=False)
|
|
op.create_index(op.f("ix_scores_gamemode"), "scores", ["gamemode"], unique=False)
|
|
op.create_index(op.f("ix_scores_map_md5"), "scores", ["map_md5"], unique=False)
|
|
op.create_index(op.f("ix_scores_user_id"), "scores", ["user_id"], unique=False)
|
|
op.create_table(
|
|
"best_scores",
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("score_id", sa.BigInteger(), nullable=False),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.Column(
|
|
"gamemode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("pp", sa.Float(), nullable=True),
|
|
sa.Column("acc", sa.Float(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["score_id"],
|
|
["scores.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("score_id"),
|
|
)
|
|
op.create_index(op.f("ix_best_scores_beatmap_id"), "best_scores", ["beatmap_id"], unique=False)
|
|
op.create_index(op.f("ix_best_scores_gamemode"), "best_scores", ["gamemode"], unique=False)
|
|
op.create_index(op.f("ix_best_scores_user_id"), "best_scores", ["user_id"], unique=False)
|
|
op.create_table(
|
|
"playlist_best_scores",
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("score_id", sa.BigInteger(), nullable=False),
|
|
sa.Column("room_id", sa.Integer(), nullable=False),
|
|
sa.Column("playlist_id", sa.Integer(), nullable=False),
|
|
sa.Column("total_score", sa.BigInteger(), nullable=True),
|
|
sa.Column("attempts", sa.Integer(), nullable=False),
|
|
# sa.ForeignKeyConstraint(
|
|
# ["playlist_id"],
|
|
# ["room_playlists.id"],
|
|
# ),
|
|
sa.ForeignKeyConstraint(
|
|
["room_id"],
|
|
["rooms.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["score_id"],
|
|
["scores.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("score_id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_playlist_best_scores_playlist_id"),
|
|
"playlist_best_scores",
|
|
["playlist_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_playlist_best_scores_room_id"),
|
|
"playlist_best_scores",
|
|
["room_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_playlist_best_scores_user_id"),
|
|
"playlist_best_scores",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
op.create_table(
|
|
"total_score_best_scores",
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("score_id", sa.BigInteger(), nullable=False),
|
|
sa.Column("beatmap_id", sa.Integer(), nullable=False),
|
|
sa.Column(
|
|
"gamemode",
|
|
sa.Enum("OSU", "TAIKO", "FRUITS", "MANIA", name="gamemode"),
|
|
nullable=False,
|
|
),
|
|
sa.Column("total_score", sa.BigInteger(), nullable=True),
|
|
sa.Column("mods", sa.JSON(), nullable=True),
|
|
sa.Column(
|
|
"rank",
|
|
sa.Enum("X", "XH", "S", "SH", "A", "B", "C", "D", "F", name="rank"),
|
|
nullable=False,
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["beatmap_id"],
|
|
["beatmaps.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["score_id"],
|
|
["scores.id"],
|
|
),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["lazer_users.id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("score_id"),
|
|
)
|
|
op.create_index(
|
|
op.f("ix_total_score_best_scores_beatmap_id"),
|
|
"total_score_best_scores",
|
|
["beatmap_id"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_total_score_best_scores_gamemode"),
|
|
"total_score_best_scores",
|
|
["gamemode"],
|
|
unique=False,
|
|
)
|
|
op.create_index(
|
|
op.f("ix_total_score_best_scores_user_id"),
|
|
"total_score_best_scores",
|
|
["user_id"],
|
|
unique=False,
|
|
)
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Downgrade schema."""
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_index(op.f("ix_total_score_best_scores_user_id"), table_name="total_score_best_scores")
|
|
op.drop_index(
|
|
op.f("ix_total_score_best_scores_gamemode"),
|
|
table_name="total_score_best_scores",
|
|
)
|
|
op.drop_index(
|
|
op.f("ix_total_score_best_scores_beatmap_id"),
|
|
table_name="total_score_best_scores",
|
|
)
|
|
op.drop_table("total_score_best_scores")
|
|
op.drop_index(op.f("ix_playlist_best_scores_user_id"), table_name="playlist_best_scores")
|
|
op.drop_index(op.f("ix_playlist_best_scores_room_id"), table_name="playlist_best_scores")
|
|
op.drop_index(op.f("ix_playlist_best_scores_playlist_id"), table_name="playlist_best_scores")
|
|
op.drop_table("playlist_best_scores")
|
|
op.drop_index(op.f("ix_best_scores_user_id"), table_name="best_scores")
|
|
op.drop_index(op.f("ix_best_scores_gamemode"), table_name="best_scores")
|
|
op.drop_index(op.f("ix_best_scores_beatmap_id"), table_name="best_scores")
|
|
op.drop_table("best_scores")
|
|
op.drop_index(op.f("ix_scores_user_id"), table_name="scores")
|
|
op.drop_index(op.f("ix_scores_map_md5"), table_name="scores")
|
|
op.drop_index(op.f("ix_scores_gamemode"), table_name="scores")
|
|
op.drop_index(op.f("ix_scores_beatmap_id"), table_name="scores")
|
|
op.drop_table("scores")
|
|
op.drop_index(op.f("ix_score_tokens_id"), table_name="score_tokens")
|
|
op.drop_index("idx_user_playlist", table_name="score_tokens")
|
|
op.drop_table("score_tokens")
|
|
op.drop_index(op.f("ix_room_playlists_id"), table_name="room_playlists")
|
|
op.drop_index(op.f("ix_room_playlists_db_id"), table_name="room_playlists")
|
|
op.drop_table("room_playlists")
|
|
op.drop_table("room_participated_users")
|
|
op.drop_index(op.f("ix_multiplayer_events_user_id"), table_name="multiplayer_events")
|
|
op.drop_index(op.f("ix_multiplayer_events_room_id"), table_name="multiplayer_events")
|
|
op.drop_index(op.f("ix_multiplayer_events_id"), table_name="multiplayer_events")
|
|
op.drop_index(op.f("ix_multiplayer_events_event_type"), table_name="multiplayer_events")
|
|
op.drop_table("multiplayer_events")
|
|
op.drop_index(op.f("ix_item_attempts_count_user_id"), table_name="item_attempts_count")
|
|
op.drop_index(op.f("ix_item_attempts_count_room_id"), table_name="item_attempts_count")
|
|
op.drop_table("item_attempts_count")
|
|
op.drop_index(op.f("ix_beatmap_playcounts_user_id"), table_name="beatmap_playcounts")
|
|
op.drop_index(op.f("ix_beatmap_playcounts_beatmap_id"), table_name="beatmap_playcounts")
|
|
op.drop_table("beatmap_playcounts")
|
|
op.drop_index(op.f("ix_user_account_history_user_id"), table_name="user_account_history")
|
|
op.drop_index(op.f("ix_user_account_history_id"), table_name="user_account_history")
|
|
op.drop_table("user_account_history")
|
|
op.drop_index(op.f("ix_team_members_id"), table_name="team_members")
|
|
op.drop_table("team_members")
|
|
op.drop_index(op.f("ix_rooms_name"), table_name="rooms")
|
|
op.drop_index(op.f("ix_rooms_id"), table_name="rooms")
|
|
op.drop_index(op.f("ix_rooms_host_id"), table_name="rooms")
|
|
op.drop_index(op.f("ix_rooms_category"), table_name="rooms")
|
|
op.drop_table("rooms")
|
|
op.drop_index(op.f("ix_relationship_user_id"), table_name="relationship")
|
|
op.drop_index(op.f("ix_relationship_target_id"), table_name="relationship")
|
|
op.drop_table("relationship")
|
|
op.drop_index(op.f("ix_oauth_tokens_user_id"), table_name="oauth_tokens")
|
|
op.drop_index(op.f("ix_oauth_tokens_id"), table_name="oauth_tokens")
|
|
op.drop_table("oauth_tokens")
|
|
op.drop_index(op.f("ix_monthly_playcounts_year"), table_name="monthly_playcounts")
|
|
op.drop_index(op.f("ix_monthly_playcounts_user_id"), table_name="monthly_playcounts")
|
|
op.drop_index(op.f("ix_monthly_playcounts_month"), table_name="monthly_playcounts")
|
|
op.drop_table("monthly_playcounts")
|
|
op.drop_index(op.f("ix_lazer_user_statistics_user_id"), table_name="lazer_user_statistics")
|
|
op.drop_table("lazer_user_statistics")
|
|
op.drop_index(op.f("ix_lazer_user_achievements_id"), table_name="lazer_user_achievements")
|
|
op.drop_table("lazer_user_achievements")
|
|
op.drop_index(op.f("ix_favourite_beatmapset_user_id"), table_name="favourite_beatmapset")
|
|
op.drop_index(op.f("ix_favourite_beatmapset_beatmapset_id"), table_name="favourite_beatmapset")
|
|
op.drop_table("favourite_beatmapset")
|
|
op.drop_index(op.f("ix_daily_challenge_stats_user_id"), table_name="daily_challenge_stats")
|
|
op.drop_table("daily_challenge_stats")
|
|
op.drop_index(op.f("ix_beatmaps_id"), table_name="beatmaps")
|
|
op.drop_index(op.f("ix_beatmaps_checksum"), table_name="beatmaps")
|
|
op.drop_index(op.f("ix_beatmaps_beatmapset_id"), table_name="beatmaps")
|
|
op.drop_table("beatmaps")
|
|
op.drop_index(op.f("ix_teams_id"), table_name="teams")
|
|
op.drop_table("teams")
|
|
op.drop_index(op.f("ix_lazer_users_username"), table_name="lazer_users")
|
|
op.drop_index(op.f("ix_lazer_users_id"), table_name="lazer_users")
|
|
op.drop_index(op.f("ix_lazer_users_email"), table_name="lazer_users")
|
|
op.drop_index(op.f("ix_lazer_users_country_code"), table_name="lazer_users")
|
|
op.drop_table("lazer_users")
|
|
op.drop_index(op.f("ix_beatmapsets_id"), table_name="beatmapsets")
|
|
op.drop_index(op.f("ix_beatmapsets_artist_unicode"), table_name="beatmapsets")
|
|
op.drop_index(op.f("ix_beatmapsets_artist"), table_name="beatmapsets")
|
|
op.drop_table("beatmapsets")
|
|
# ### end Alembic commands ###
|