seed_reference_data идёт при каждом старте: в prod — через entrypoint.sh, в dev — через lifespan. Раньше он перезаписывал name_ru существующих фракций значением из кода, поэтому переименование из админки жило только до ближайшего рестарта.
Теперь имя из кода получает только новая фракция. У существующих name_ru не трогается: его правит админка, источник правды — БД. expansion_id и sort_order синхронизируются как раньше. У дополнений ничего не изменилось: переименования в админке у них нет.
Цена решения: исправление имени фракции в коде больше не доедет до существующих БД — только через админку или миграцию. Это записано в докстринг сидинга.
Коммиты
1bc3940 Справочники: сидинг не откатывает имя фракции, заданное админом
Проверки
pytest — 211 passed.
test_faction_rename_survives_restart_seeding — переименование через API, затем повторный сидинг (то же, что рестарт); имя сохраняется. На старом reference_data.py тест падает.
test_seeding_is_complete_and_idempotent — сидинг пустой БД дважды; все фракции из FACTIONS на месте с именами из кода.
## Что сделано
`seed_reference_data` идёт при каждом старте: в prod — через `entrypoint.sh`, в dev — через lifespan. Раньше он перезаписывал `name_ru` существующих фракций значением из кода, поэтому переименование из админки жило только до ближайшего рестарта.
Теперь имя из кода получает только **новая** фракция. У существующих `name_ru` не трогается: его правит админка, источник правды — БД. `expansion_id` и `sort_order` синхронизируются как раньше. У дополнений ничего не изменилось: переименования в админке у них нет.
Цена решения: исправление имени фракции в коде больше не доедет до существующих БД — только через админку или миграцию. Это записано в докстринг сидинга.
## Коммиты
- `1bc3940` Справочники: сидинг не откатывает имя фракции, заданное админом
## Проверки
- `pytest` — 211 passed.
- `test_faction_rename_survives_restart_seeding` — переименование через API, затем повторный сидинг (то же, что рестарт); имя сохраняется. На старом `reference_data.py` тест падает.
- `test_seeding_is_complete_and_idempotent` — сидинг пустой БД дважды; все фракции из `FACTIONS` на месте с именами из кода.
## Отклонения от плана
Нет.
Closes #72
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
seed_reference_data идёт при каждом старте (entrypoint.sh, lifespan) и
перезаписывал name_ru существующих фракций значением из кода — переименование
из админки жило до ближайшего рестарта. Теперь имя из кода получает только
новая фракция; дополнение и порядок синхронизируются как раньше. #72
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
seed_reference_dataидёт при каждом старте: в prod — черезentrypoint.sh, в dev — через lifespan. Раньше он перезаписывалname_ruсуществующих фракций значением из кода, поэтому переименование из админки жило только до ближайшего рестарта.Теперь имя из кода получает только новая фракция. У существующих
name_ruне трогается: его правит админка, источник правды — БД.expansion_idиsort_orderсинхронизируются как раньше. У дополнений ничего не изменилось: переименования в админке у них нет.Цена решения: исправление имени фракции в коде больше не доедет до существующих БД — только через админку или миграцию. Это записано в докстринг сидинга.
Коммиты
1bc3940Справочники: сидинг не откатывает имя фракции, заданное админомПроверки
pytest— 211 passed.test_faction_rename_survives_restart_seeding— переименование через API, затем повторный сидинг (то же, что рестарт); имя сохраняется. На старомreference_data.pyтест падает.test_seeding_is_complete_and_idempotent— сидинг пустой БД дважды; все фракции изFACTIONSна месте с именами из кода.Отклонения от плана
Нет.
Closes #72
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd