|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
assert_not_cut_over защищает от --force-restore после cutover: такая заливка
дропает объекты и льёт заново из дампа, уничтожая всё, что приложения записали
после переключения, а сверка фазы 5 подтверждает это как успех — записей,
сделанных после cutover, в источнике никогда не было. Единственная защита —
не дать запуститься.
Страж состоит из двух проверок, и одна из них не работала. Путь считался как
${FORGEJO_DIR}/app.ini, но FORGEJO_DIR — это каталог со стеком: там
docker-compose.yml и раннеры. Конфиг живёт внутри тома данных. На боевом хосте
проверено: /home/gendesign/forgejo/data/forgejo монтируется в контейнер как
/data, то есть app.ini лежит в
/home/gendesign/forgejo/data/forgejo/gitea/conf/app.ini, а /home/gendesign/
forgejo/app.ini не существует вовсе.
Проверка написана как `[[ -r "$ini" ]] && grep ...`, поэтому несуществующий
файл читался как «признака cutover нет». Молча, без единого сообщения.
Теперь путь ищется по трём кандидатам и переопределяется через FORGEJO_APP_INI.
А если не нашёлся ни один — скрипт останавливается, а не продолжает. Ненайденный
конфиг это не «признака нет», это «проверить нечем»: именно здесь пропуск стоит
данных, записанных после переключения.
Заодно поправлены два места в раннбуке на выходе скрипта, которые печатали тот
же несуществующий путь как инструкцию человеку.
Проверено на боевом Beget: автоопределение находит
data/forgejo/gitea/conf/app.ini, строка HOST читается, признак cutover
корректно определяется как отсутствующий; старый путь подтверждённо не
существует.
Refs #3061, #3057
|
||
|---|---|---|
| .. | ||
| db-bootstrap | ||
| glitchtip-auth-forwarder | ||
| backup-couchdb.sh | ||
| backup-forgejo.sh | ||
| backup.sh | ||
| check-backup-staleness.sh | ||
| crontab-beget.cron | ||
| crontab-poincare.cron | ||
| docker-prune.sh | ||
| gendesign-backup-couchdb.default.example | ||
| gendesign-backup-forgejo.default.example | ||
| gendesign-backup.default.example | ||
| gendesign-uptime.default.example | ||
| journald-gendesign.conf.example | ||
| lib-backup.sh | ||
| restore-drill.sh | ||
| restore.sh | ||
| selectel-audit.sh | ||
| selectel-bootstrap.sh | ||
| selectel-ci-access.sh | ||
| split-infra-postgres.sh | ||
| uptime-healthcheck.sh | ||