DEPO: процедуры ставятся в мастере «Подготовить» + правка под клиента

- «Подготовить» в мастере (step 3, режим «дать логин администратора») теперь ставит
  и процедуры обработки bj2depo (CREATE OR ALTER) + GRANT, не только логин/таблицы/джобу.
- Скачиваемый скрипт мастера включает процедуры.
- Тексты процедур редактируются под клиента (Настройка → Обмен DEPO → Процедуры):
  сохранённый вариант используется при установке и при «Подготовить». Пусто/совпадение
  со встроенным — исходная версия.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-20 14:12:54 +03:00
parent 45edbdbae6
commit eef6c9d996
6 changed files with 125 additions and 32 deletions
+12
View File
@@ -323,6 +323,9 @@ func (h *setupHandlers) wizardDepoScript(w http.ResponseWriter, r *http.Request)
}
}
body := depoSetupScript(s, db, s.User, s.Password, agent)
if !s.IsPostgres() { // процедуры обработки bj2depo — тем же файлом
body += "\nGO\n" + depoProcsScriptFor(s, db, s.User)
}
w.Header().Set("Cache-Control", "no-store")
if view {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
@@ -410,6 +413,15 @@ func (h *setupHandlers) depoSetupDo(ctx context.Context, r *http.Request, step d
if err := depoSetupRun(ctx, s, db, au, r.FormValue("admin_password"), s.User, s.Password, agent, step); err != nil {
return fail("база не подготовлена — " + err.Error())
}
if !s.IsPostgres() { // процедуры обработки bj2depo (CREATE OR ALTER, с учётом правки под клиента)
step("procs", "run", "Устанавливаю процедуры обработки bj2depo")
adm := s
adm.User, adm.Password = au, r.FormValue("admin_password")
if err := depoProcsInstallInto(ctx, adm, s, db, s.User); err != nil {
return fail("процедуры обработки не установлены — " + err.Error())
}
step("procs", "ok", "")
}
s.DepoTablesMode = "auto"
note = "база " + db + " подготовлена: логин " + s.User + ", таблицы обмена, права"
if agent {