Схема БД конфигурируемая (сейчас «dkb» зашита в коде и миграциях) #38
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Имя схемы PostgreSQL
dkbзашито в восьми местах:api/src/models/base.py:10—SCHEMA = "dkb"(MetaData моделей, sequence, enum);api/src/db/db.py:10—search_path: "dkb"движка приложения;api/alembic/env.py:23—SCHEMA = "dkb"(CREATE SCHEMA,version_table_schema);api/alembic/versions/0001…0004— свойSCHEMA = "dkb"в каждой миграции плюс строковые FK"dkb.app_user.id"и т.п. (0001, 0002);api/tests/conftest.py:100—search_path: "dkb".Платформа может выдать БД с другой схемой (или требовать отдельную схему на стенд), а миграции сейчас пишут только в
dkb.Что сделать
raisa_config.yml/ env, напримерDATABASE.SCHEMA, по умолчаниюdkb).models/base.py,db/db.py(search_path),alembic/env.pyчитают её.op.get_context().version_table_schemaили общий хелпер), строковые FKdkb.x.id→f"{SCHEMA}.x.id". При значении по умолчанию DDL миграций не меняется — проверить сравнениемalembic upgrade --sqlдо/после.conftest.pyберёт ту же настройку; тест, что миграции применяются и откатываются в схему с нестандартным именем.Почему не сейчас
Идёт Срез 3b (#36, worktree
.wt/slice-3b), он трогает модели и conftest. Начинать после слияния 3b, чтобы не конфликтовать. Если 3b добавит миграцию 0005 — она тоже попадает под п. 3.Bounded-задача (без OpenSpec change).