fix(cuod-bundle): seed records for existing definitions too
Importer бросал early-return для уже существующих definitions, поэтому records никогда не наполнялись на повторных стартах. Records seed теперь вызывается всегда (idempotent — skip по businessKey).
This commit is contained in:
+7
-8
@@ -103,14 +103,7 @@ public class CuodBundleImporter {
|
|||||||
Optional<DictionaryDefinition> existing = repository.findByName(entry.name());
|
Optional<DictionaryDefinition> existing = repository.findByName(entry.name());
|
||||||
if (existing.isPresent()) {
|
if (existing.isPresent()) {
|
||||||
DictionaryDefinition def = existing.get();
|
DictionaryDefinition def = existing.get();
|
||||||
if (!props.updateExistingSchema()) {
|
if (props.updateExistingSchema() && !entry.schemaVersion().equals(def.getSchemaVersion())) {
|
||||||
log.debug("Справочник '{}' уже существует, update_existing_schema=false — пропускаем", entry.name());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (entry.schemaVersion().equals(def.getSchemaVersion())) {
|
|
||||||
log.debug("Справочник '{}' v{} актуален", entry.name(), def.getSchemaVersion());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
JsonNode prevSchema = def.getSchemaJson();
|
JsonNode prevSchema = def.getSchemaJson();
|
||||||
def.setSchemaJson(schema);
|
def.setSchemaJson(schema);
|
||||||
def.setSchemaVersion(entry.schemaVersion());
|
def.setSchemaVersion(entry.schemaVersion());
|
||||||
@@ -132,6 +125,12 @@ public class CuodBundleImporter {
|
|||||||
"definition:" + saved.getName(),
|
"definition:" + saved.getName(),
|
||||||
EventEnvelope.of(saved.getName(), toEventScope(saved.getScope()), manifest.bundle(), event));
|
EventEnvelope.of(saved.getName(), toEventScope(saved.getScope()), manifest.bundle(), event));
|
||||||
log.info("Справочник '{}' обновлён до v{}", saved.getName(), saved.getSchemaVersion());
|
log.info("Справочник '{}' обновлён до v{}", saved.getName(), saved.getSchemaVersion());
|
||||||
|
def = saved;
|
||||||
|
} else {
|
||||||
|
log.debug("Справочник '{}' v{} актуален, schema не трогаем", entry.name(), def.getSchemaVersion());
|
||||||
|
}
|
||||||
|
// Records seed запускаем всегда — они идемпотентны (skip on existing businessKey).
|
||||||
|
importRecords(manifest, entry, def);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user