Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/ttt/infrastructure/adapters/map.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ def _handle_integrity_error(self, error: IntegrityError) -> None:
case UniqueViolation() as unique_error:
constraint_name = unique_error.diag.constraint_name

if constraint_name == "players_pkey":
if constraint_name == "users_pkey":
raise NotUniqueUserIdError from error
case _:
raise error from error
case _: ...

raise error from error
2 changes: 1 addition & 1 deletion src/ttt/infrastructure/alembic/script.py.mako
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""${message}
"""${message}.

Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
"""
rename `games.player{x}_id` to `games.user{x}_id`.

Revision ID: 0ab305265ed4
Revises: 3cbb0bf26e9e
Create Date: 2025-07-24 05:25:29.573399

"""

from collections.abc import Sequence

from alembic import op


revision: str = "0ab305265ed4"
down_revision: str | None = "3cbb0bf26e9e"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("""
ALTER TABLE games RENAME CONSTRAINT
games_player1_id_fkey
TO games_user1_id_fkey;
""")
op.execute("""
ALTER INDEX ix_games_player1_id RENAME
TO ix_games_user1_id;
""")
op.alter_column(
"games",
"player1_id",
new_column_name="user1_id",
)

op.execute("""
ALTER TABLE games RENAME CONSTRAINT
games_player2_id_fkey
TO games_user2_id_fkey;
""")
op.execute("""
ALTER INDEX ix_games_player2_id RENAME
TO ix_games_user2_id;
""")
op.alter_column(
"games",
"player2_id",
new_column_name="user2_id",
)


def downgrade() -> None:
op.execute("""
ALTER TABLE games RENAME CONSTRAINT
games_user1_id_fkey
TO games_player1_id_fkey;
""")
op.execute("""
ALTER INDEX ix_games_user1_id RENAME
TO ix_games_player1_id;
""")
op.alter_column(
"games",
"user1_id",
new_column_name="player1_id",
)

op.execute("""
ALTER TABLE games RENAME CONSTRAINT
games_user2_id_fkey
TO games_player2_id_fkey;
""")
op.execute("""
ALTER INDEX ix_games_user2_id RENAME
TO ix_games_player2_id;
""")
op.alter_column(
"games",
"user2_id",
new_column_name="player2_id",
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
remove `players_id_seq`.

Revision ID: 1360cc49b0b6
Revises: fb04714a84d4
Create Date: 2025-07-24 05:50:47.308411

"""

from collections.abc import Sequence

import sqlalchemy as sa
from alembic import op


revision: str = "1360cc49b0b6"
down_revision: str | None = "fb04714a84d4"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("ALTER TABLE users ALTER COLUMN id DROP DEFAULT;")
op.execute("DROP SEQUENCE players_id_seq;")


def downgrade() -> None:
connection = op.get_bind()

max_user_id: int = connection.scalar(sa.text("SELECT max(id) from users;"))
sequence_start = max_user_id + 1000
op.execute(f"CREATE SEQUENCE players_id_seq START WITH {sequence_start};")

op.execute("""
ALTER TABLE users ALTER COLUMN id SET DEFAULT nextval('players_id_seq');
""")
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""
rename `player_emojis_pkey` to `user_emojis_pkey`.

Revision ID: 274a1fc84d0c
Revises: fde32a1982c7
Create Date: 2025-07-23 08:45:07.054035

"""

from collections.abc import Sequence

from alembic import op


revision: str = "274a1fc84d0c"
down_revision: str | None = "fde32a1982c7"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("""
ALTER TABLE user_emojis
RENAME CONSTRAINT player_emojis_pkey TO user_emojis_pkey;
""")


def downgrade() -> None:
op.execute("""
ALTER TABLE user_emojis
RENAME CONSTRAINT user_emojis_pkey TO player_emojis_pkey;
""")
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
"""
rename `cells.filler_id` to `cells.user_filler_id`.

Revision ID: 3cbb0bf26e9e
Revises: 3f0d6b39f862
Create Date: 2025-07-24 05:21:06.119116

"""

from collections.abc import Sequence

from alembic import op


revision: str = "3cbb0bf26e9e"
down_revision: str | None = "3f0d6b39f862"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("""
ALTER TABLE cells RENAME CONSTRAINT
cells_filler_id_fkey
TO cells_user_filler_id_fkey;
""")
op.execute("""
ALTER INDEX ix_cells_filler_id RENAME
TO ix_cells_user_filler_id;
""")
op.alter_column(
"cells",
"filler_id",
new_column_name="user_filler_id",
)


def downgrade() -> None:
op.execute("""
ALTER TABLE cells RENAME CONSTRAINT
cells_user_filler_id_fkey
TO cells_filler_id_fkey;
""")
op.execute("""
ALTER INDEX ix_cells_user_filler_id RENAME
TO ix_cells_filler_id;
""")
op.alter_column(
"cells",
"user_filler_id",
new_column_name="filler_id",
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
"""
rename `stars_purchases.location_player_id` to `stars_purchases.location_user_id`.

Revision ID: 3f0d6b39f862
Revises: 50990aed76a8
Create Date: 2025-07-24 05:12:08.982879

""" # noqa: E501

from collections.abc import Sequence

from alembic import op


revision: str = "3f0d6b39f862"
down_revision: str | None = "50990aed76a8"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("""
ALTER TABLE stars_purchases RENAME CONSTRAINT
stars_purchases_location_player_id_fkey
TO stars_purchases_location_user_id_fkey;
""")
op.execute("""
ALTER INDEX ix_stars_purchases_location_player_id RENAME
TO ix_stars_purchases_location_user_id;
""")
op.alter_column(
"stars_purchases",
"location_player_id",
new_column_name="location_user_id",
)


def downgrade() -> None:
op.execute("""
ALTER TABLE stars_purchases RENAME CONSTRAINT
stars_purchases_location_user_id_fkey
TO stars_purchases_location_player_id_fkey;
""")
op.execute("""
ALTER INDEX ix_stars_purchases_location_user_id RENAME
TO ix_stars_purchases_location_player_id;
""")
op.alter_column(
"stars_purchases",
"location_user_id",
new_column_name="location_player_id",
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""
rename `players` to `users`.

Revision ID: 42ad1196c6da
Revises: 0ab305265ed4
Create Date: 2025-07-24 05:38:35.259138

"""
from collections.abc import Sequence

from alembic import op


revision: str = "42ad1196c6da"
down_revision: str | None = "0ab305265ed4"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.rename_table("players", "users")


def downgrade() -> None:
op.rename_table("users", "players")
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""
rename `player_emojis_user_id_fkey` to `user_emojis_user_id_fkey`.

Revision ID: 50990aed76a8
Revises: 274a1fc84d0c
Create Date: 2025-07-23 08:54:03.378941

"""

from collections.abc import Sequence

from alembic import op


revision: str = "50990aed76a8"
down_revision: str | None = "274a1fc84d0c"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("""
ALTER TABLE user_emojis RENAME CONSTRAINT
player_emojis_user_id_fkey TO user_emojis_user_id_fkey;
""")


def downgrade() -> None:
op.execute("""
ALTER TABLE user_emojis RENAME CONSTRAINT
user_emojis_user_id_fkey TO player_emojis_user_id_fkey;
""")
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
"""
rename `players` constrains to `users` constrains.

Revision ID: fb04714a84d4
Revises: 42ad1196c6da
Create Date: 2025-07-24 05:40:57.564599

"""
from collections.abc import Sequence

from alembic import op


revision: str = "fb04714a84d4"
down_revision: str | None = "42ad1196c6da"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
op.execute("ALTER INDEX players_pkey RENAME TO users_pkey;")
op.execute("""
ALTER INDEX ix_players_game_location_game_id
RENAME TO ix_users_game_location_game_id;
""")
op.execute("""
ALTER INDEX ix_players_selected_emoji_id
RENAME TO ix_users_selected_emoji_id;
""")

op.execute("""
ALTER TABLE users RENAME CONSTRAINT
players_game_location_game_id_fkey TO users_game_location_game_id_fkey;
""")
op.execute("""
ALTER TABLE users RENAME CONSTRAINT
players_selected_emoji_id_fkey TO users_selected_emoji_id_fkey;
""")


def downgrade() -> None:
op.execute("ALTER INDEX users_pkey RENAME TO players_pkey;")
op.execute("""
ALTER INDEX ix_users_game_location_game_id
RENAME TO ix_players_game_location_game_id;
""")
op.execute("""
ALTER INDEX ix_users_selected_emoji_id
RENAME TO ix_players_selected_emoji_id;
""")

op.execute("""
ALTER TABLE users RENAME CONSTRAINT
users_game_location_game_id_fkey TO players_game_location_game_id_fkey;
""")
op.execute("""
ALTER TABLE users RENAME CONSTRAINT
users_selected_emoji_id_fkey TO players_selected_emoji_id_fkey;
""")
Loading