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());
|
||||
if (existing.isPresent()) {
|
||||
DictionaryDefinition def = existing.get();
|
||||
if (!props.updateExistingSchema()) {
|
||||
log.debug("Справочник '{}' уже существует, update_existing_schema=false — пропускаем", entry.name());
|
||||
return;
|
||||
}
|
||||
if (entry.schemaVersion().equals(def.getSchemaVersion())) {
|
||||
log.debug("Справочник '{}' v{} актуален", entry.name(), def.getSchemaVersion());
|
||||
return;
|
||||
}
|
||||
if (props.updateExistingSchema() && !entry.schemaVersion().equals(def.getSchemaVersion())) {
|
||||
JsonNode prevSchema = def.getSchemaJson();
|
||||
def.setSchemaJson(schema);
|
||||
def.setSchemaVersion(entry.schemaVersion());
|
||||
@@ -132,6 +125,12 @@ public class CuodBundleImporter {
|
||||
"definition:" + saved.getName(),
|
||||
EventEnvelope.of(saved.getName(), toEventScope(saved.getScope()), manifest.bundle(), event));
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user