fix(generator): исключено смешение миров при запуске
- Зачем: - старый state и ручной live-генератор могли тихо писать события в новый мир данных. - Что: - добавлена общая проверка чистого стенда для Airflow и host-путей. - защищены backfill, import, continue и clean-start сценарии live-generator. - описан миграционный отказ старого state. - Проверка: - make generator-test; docker compose config --quiet; py_compile; bash -n.
This commit is contained in:
@@ -31,6 +31,7 @@ from clickstream_generator.startup_history_artifact import (
|
||||
generation_settings_from_config,
|
||||
write_startup_history_artifact,
|
||||
)
|
||||
from clickstream_generator.state import UnsupportedStateVersionError
|
||||
|
||||
|
||||
logger = logging.getLogger("generator")
|
||||
@@ -98,7 +99,21 @@ class GeneratorService:
|
||||
return
|
||||
|
||||
if not self.config.state_reset:
|
||||
restored_state = self.state_manager.load()
|
||||
try:
|
||||
restored_state = self.state_manager.load()
|
||||
except UnsupportedStateVersionError as exc:
|
||||
logger.error(
|
||||
"Readable generator state uses an old format: version %s. "
|
||||
"Run make clean or set GEN_STATE_RESET=true only if you "
|
||||
"intentionally start a new world.",
|
||||
exc.found_version,
|
||||
)
|
||||
raise IncompatibleStateError(
|
||||
f"state version {exc.found_version} is not supported "
|
||||
f"by this code version ({exc.expected_version}); "
|
||||
"run make clean, or set GEN_STATE_RESET=true to start "
|
||||
"a new world intentionally"
|
||||
) from exc
|
||||
if restored_state:
|
||||
try:
|
||||
self.manifest_manager = KafkaStartupHistoryManifest(
|
||||
|
||||
Reference in New Issue
Block a user