[UX] #599 separate database preparation from settings

This commit is contained in:
devmrko
2026-06-30 20:29:46 +09:00
parent 699a1ac127
commit 2f67587b40
6 changed files with 257 additions and 144 deletions

View File

@@ -31,6 +31,11 @@ public class SettingController {
model.addAttribute("runtimeErrorTitle", error.title());
model.addAttribute("runtimeErrorMessage", error.message());
}
return "settings";
}
@GetMapping("/settings/database")
public String databaseSettings(Model model) {
try {
model.addAttribute("schemaPreflight", backofficeSchemaService.preflight());
} catch (DataAccessException exception) {
@@ -38,7 +43,7 @@ public class SettingController {
model.addAttribute("schemaPreflightErrorTitle", error.title());
model.addAttribute("schemaPreflightErrorMessage", error.message());
}
return "settings";
return "settings-database";
}
@PostMapping("/settings/ords")
@@ -51,8 +56,16 @@ public class SettingController {
return "redirect:/settings";
}
@PostMapping("/settings/schema/initialize")
public String initializeSchema(RedirectAttributes redirectAttributes) {
@PostMapping("/settings/database/initialize")
public String initializeSchema(
@RequestParam String confirmation,
RedirectAttributes redirectAttributes
) {
if (!"DB 준비 실행".equals(confirmation)) {
redirectAttributes.addFlashAttribute(
"error", "DB 지원 DDL을 실행하려면 확인 문구 DB 준비 실행’을 정확히 입력하세요.");
return "redirect:/settings/database";
}
var results = backofficeSchemaService.initializeSchema();
long failures = results.stream()
.filter(result -> "FAILED".equalsIgnoreCase(result.status()))
@@ -63,6 +76,6 @@ public class SettingController {
} else {
redirectAttributes.addFlashAttribute("message", "백오피스 지원 테이블 DDL을 실행했습니다.");
}
return "redirect:/settings";
return "redirect:/settings/database";
}
}