fix #495: add schema preflight and DDL details

This commit is contained in:
devmrko
2026-06-26 16:32:38 +09:00
parent cacf7b2bc4
commit 5d864379bd
8 changed files with 922 additions and 182 deletions

View File

@@ -31,6 +31,13 @@ public class SettingController {
model.addAttribute("runtimeErrorTitle", error.title());
model.addAttribute("runtimeErrorMessage", error.message());
}
try {
model.addAttribute("schemaPreflight", backofficeSchemaService.preflight());
} catch (DataAccessException exception) {
RuntimeErrorMessage error = RuntimeErrorMessages.dataAccess(exception);
model.addAttribute("schemaPreflightErrorTitle", error.title());
model.addAttribute("schemaPreflightErrorMessage", error.message());
}
return "settings";
}
@@ -46,8 +53,16 @@ public class SettingController {
@PostMapping("/settings/schema/initialize")
public String initializeSchema(RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("schemaResults", backofficeSchemaService.initializeSchema());
redirectAttributes.addFlashAttribute("message", "백오피스 지원 테이블 DDL을 실행했습니다.");
var results = backofficeSchemaService.initializeSchema();
long failures = results.stream()
.filter(result -> "FAILED".equalsIgnoreCase(result.status()))
.count();
redirectAttributes.addFlashAttribute("schemaResults", results);
if (failures > 0) {
redirectAttributes.addFlashAttribute("error", "백오피스 지원 DDL 실행 중 " + failures + "개 작업이 실패했습니다. 결과와 SQL을 확인하세요.");
} else {
redirectAttributes.addFlashAttribute("message", "백오피스 지원 테이블 DDL을 실행했습니다.");
}
return "redirect:/settings";
}
}