feat: add legacy tg-shop migration to installer

This commit is contained in:
3252a8
2026-06-02 10:17:50 +03:00
parent d22ed238b4
commit 3b40369606
4 changed files with 314 additions and 19 deletions
+7 -3
View File
@@ -31,7 +31,8 @@ Wizard работает через меню с цифрами и подтвер
- сохранить backup существующих файлов перед перезаписью;
- запустить `docker compose pull && docker compose up -d`;
- проверить текущий стек через `docker compose ps` и логи `migrate`;
- запустить миграцию из поддерживаемых legacy-ботов, сейчас - из Remnashop.
- запустить миграцию из поддерживаемых legacy-ботов: Remnashop и старый
`remnawave-tg-shop`;
Для тестирования другой ветки или форка задайте источник перед запуском:
@@ -41,8 +42,11 @@ MINISHOP_INSTALL_REF=main \
sh install.sh
```
Миграция в wizard сначала запускает `dry-run`, показывает JSON-сводку и только
после отдельного подтверждения применяет изменения в целевую БД.
Миграция Remnashop в wizard сначала запускает `dry-run`, показывает JSON-сводку
и только после отдельного подтверждения применяет изменения в целевую БД.
Миграция со старого `remnawave-tg-shop` работает как upgrade совместимой БД:
либо копирует старый Docker volume, либо делает `pg_dump` по source DSN,
восстанавливает дамп в целевую compose-БД и запускает сервис `migrate`.
Обычный `docker compose up -d --build` поднимает:
+27
View File
@@ -4,6 +4,33 @@
Автоматический скрипт ниже рассчитан именно на родственный стек `remnawave-tg-shop`, где структура БД и Docker volumes известны заранее. Для других ботов нужен отдельный адаптер экспорта/импорта.
## Новый install wizard
Для нового сервера или переноса без клонирования репозитория используйте общий
`sh` wizard:
```bash
curl -fsSL https://raw.githubusercontent.com/3252a8/remnawave-minishop/main/scripts/install.sh -o install.sh
sh install.sh
```
В меню выберите `Install new stack and run legacy migration` или
`Run legacy migration only`, затем источник `Legacy remnawave-tg-shop`.
Wizard поддерживает два режима:
- `Copy old Docker volumes` - тот же безопасный сценарий, что и старый
`migrate_to_minishop.sh`: старый volume `remnawave-tg-shop-db-data`
копируется в `remnawave-minishop-db-data`, затем новый stack запускает
сервис `migrate` и накатывает все схемные миграции;
- `Dump from a source PostgreSQL DSN` - новый режим для случаев, когда старая
БД доступна как внешний PostgreSQL DSN. Wizard поднимает целевой `postgres`,
сбрасывает целевую БД, делает `pg_dump` из старой БД, восстанавливает дамп в
compose-БД и затем запускает `migrate`.
Старый helper `scripts/migrate_to_minishop.sh` ниже всё ещё полезен для
in-place обновления уже клонированного репозитория: он переключает git-ветку,
переносит volumes и стартует новый stack. Прямой source DSN он не поддерживал.
## Короткий путь без смены ветки и сборки
Если вы используете только готовые Docker-образы и не собираете проект