From ec0445fbcb9bc543313f6dcd05cb0e093d994aa7 Mon Sep 17 00:00:00 2001 From: NotBigGhost Date: Fri, 18 Sep 2026 21:55:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B8=D0=B3=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8:=20=D0=BE=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D1=82=D1=85=D0=BE=D0=B4=D1=8F=D1=82=20?= =?UTF-8?q?=D0=BE=D1=82=200013,=20=D1=81=D0=BB=D0=B8=D1=8F=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=20=D1=80=D0=B5=D0=B9=D1=82=D0=B8=D0=BD=D0=B3?= =?UTF-8?q?=D0=BE=D0=BC=20=D0=B2=200016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Объявления выпускаются в main раньше рейтинга, а в main последняя миграция — 0013. Если бы 0015 оставалась после 0014, прод, получивший объявления, встал бы на 0015, и при будущем переходе на dev alembic счёл бы базу актуальной — рейтинговая 0014 не применилась бы никогда. Теперь 0015 отходит от 0013 (как и 0014), а пустая 0016 сводит обе ветки в одну голову: прод на 0015 докатит 0014 и 0016, база на 0014 — 0015 и 0016. Базы, уже прогнанные прежней версией (0015 после 0014), повторно получат идемпотентную 0014 — проверено на копии dev-БД, на пустой базе и на такой базе. #84 Co-Authored-By: Claude Opus 5 --- .../alembic/versions/0015_announcements.py | 7 ++++-- .../0016_merge_rating_announcements.py | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 backend/alembic/versions/0016_merge_rating_announcements.py diff --git a/backend/alembic/versions/0015_announcements.py b/backend/alembic/versions/0015_announcements.py index 39e977d..4f03dc5 100644 --- a/backend/alembic/versions/0015_announcements.py +++ b/backend/alembic/versions/0015_announcements.py @@ -3,8 +3,11 @@ Идемпотентна: на свежей БД таблицы создаёт 0001 (create_all из актуальных моделей) -> no-op; на существующей БД создаёт недостающие таблицы. +Отходит от 0013, а не от 0014: объявления выпущены в main раньше рейтинга. Ветки рейтинга +(0014) и объявлений (0015) сводит пустая миграция 0016. + Revision ID: 0015_announcements -Revises: 0014_rating_inputs +Revises: 0013_user_token_version Create Date: 2026-09-18 """ from typing import Sequence, Union @@ -15,7 +18,7 @@ from sqlalchemy import inspect from alembic import op revision: str = "0015_announcements" -down_revision: Union[str, None] = "0014_rating_inputs" +down_revision: Union[str, None] = "0013_user_token_version" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None diff --git a/backend/alembic/versions/0016_merge_rating_announcements.py b/backend/alembic/versions/0016_merge_rating_announcements.py new file mode 100644 index 0000000..5442441 --- /dev/null +++ b/backend/alembic/versions/0016_merge_rating_announcements.py @@ -0,0 +1,25 @@ +"""Слияние веток миграций: рейтинг (0014) и объявления (0015). + +Объявления (#84) вышли в main раньше рейтинга, поэтому 0015 отходит от 0013, а не от 0014, +и у графа миграций две ветки. Эта миграция сводит их в одну голову и сама ничего не меняет: +прод, стоящий на 0015 (релиз без рейтинга), при переходе на эту версию получит 0014 и её; +база на 0014 (dev) — 0015 и её. + +Revision ID: 0016_merge_rating_announcements +Revises: 0014_rating_inputs, 0015_announcements +Create Date: 2026-09-18 +""" +from typing import Sequence, Union + +revision: str = "0016_merge_rating_announcements" +down_revision: Union[str, Sequence[str], None] = ("0014_rating_inputs", "0015_announcements") +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + pass + + +def downgrade() -> None: + pass