Как перенести данные из старой установки
Этот гид импортирует ваши существующие данные из старой установки HandyCafe V3 или V4 в современный сервер HandyCafe. Миграция не разрушает исходник: оригинальные файлы не изменяются и не удаляются.
Миграция базы данных выполняется только в Windows. Поддержка времени выполнения для подключения устаревших клиентов по оригинальному протоколу работает на любой платформе (см. Настройки устаревших клиентов).
Что понадобится
- Компьютер с Windows, на котором либо установлены и старая, и современная версия HandyCafe, либо есть доступ к файлу старой базы данных.
- Доступ администратора к HandyCafe Server.
- Остановленный старый сервер. Во время миграции в исходную базу данных не должно идти активной записи.
- Свободное место на диске не меньше размера старой базы данных, чтобы хранить новую копию базы HandyCafe.
- От 10 до 30 минут без прерываний. Миграция больших наборов данных может занять несколько минут. Не закрывайте HandyCafe во время выполнения.
Шаг 1: Остановите старый сервер
Откройте старое приложение HandyCafe Server. Остановите все сеансы и выйдите из приложения. Если старый сервер работает как служба Windows, остановите службу через services.msc.
Ожидаемый результат: Процесс старого сервера больше не работает. Файл базы данных не удерживается открытым.
Шаг 2: Откройте страницу настроек устаревших клиентов
- Запустите HandyCafe.
- Откройте Настройки на боковой панели.
- Нажмите Устаревшие клиенты.
- Прокрутите до раздела Миграция базы данных.
Ожидаемый результат: Если система обнаружит старую установку, страница покажет путь установки, путь к базе данных, версию сервера и количество INI-файлов. Если ничего не найдено, страница покажет "No legacy installation detected." В этом случае проверьте, что старые файлы действительно лежат в стандартном месте, например Program Files\\HandyCafe или C:\\HandyCafe.
Шаг 3: Проверьте найденную установку
Сверьте найденные значения с вашей старой установкой:
| Поле | Что проверить |
|---|---|
| Install Path | Указывает на правильную папку HandyCafe. |
| Database Path | Указывает на файл старой базы внутри папки установки. |
| Server Version | Совпадает с версией вашего старого сервера, например 3.4.01 или 4.0.10. |
| INI File Count | Не равно нулю. У нормальной установки несколько INI-файлов для разных настроек. |
Если какое-то поле неверно, закройте HandyCafe, исправьте установку и откройте программу снова.
Шаг 4: Проверьте кодировку
Перед запуском миграции убедитесь, что поле Encoding в разделе Протокола времени выполнения выставлено правильно для ваших исходных данных. Оно находится на той же странице настроек, выше.
| Язык источника | Рекомендуемая кодировка |
|---|---|
| Турецкий | cp1254 |
| Западноевропейские языки (английский, французский, немецкий, испанский, итальянский, португальский) | cp1252 |
| Другие | cp1254 (сервер принимает это значение как запасной вариант по умолчанию) |
Если меняете кодировку, нажмите Save перед продолжением.
Ожидаемый результат: Исходные строки будут корректно декодированы во время миграции, что поможет избежать статуса completed_with_warnings.
Шаг 5: Запустите миграцию
- Нажмите Start Migration.
- Откроется окно прогресса. В нем показывается текущий этап и число уже обработанных строк.
- Не закрывайте HandyCafe и не переводите компьютер в сон.
- Дождитесь завершения. Небольшие наборы данных заканчиваются меньше чем за минуту. Большие наборы могут занять 5--10 минут.
Ожидаемый результат: Окно прогресса закрывается, а статус меняется на completed или completed_with_warnings. Появляется уведомление, подтверждающее запуск.
Шаг 6: Проверьте перенесенные количества
После завершения страница показывает количество импортированных записей:
| Счетчик | Значение |
|---|---|
| Members | Импортированные записи клиентов. |
| Pricing | Импортированные таблицы тарификации и записи расписания. |
| Products | Импортированные записи каталога товаров. |
| Orders | Импортированная история заказов. |
| Transactions | Импортированные проводки журнала. |
| Logs | Импортированные записи аудита и предупреждений. |
| Warnings | Записи, пропущенные во время импорта. Появляется только при статусе completed_with_warnings. |
Нажмите раскрытие Details, чтобы увидеть полную разбивку. Проверьте, что цифры выглядят разумно по сравнению с вашими ожиданиями.
Ожидаемый результат: Все четыре основные категории (участники, товары, заказы, транзакции) показывают ненулевые значения, если в исходной базе эти данные были.
Шаг 7: Разберите предупреждения, если они есть
Если статус completed_with_warnings, разверните список предупреждений и изучите пропущенные записи.
Частые предупреждения и способы их исправления:
| Предупреждение | Причина | Решение |
|---|---|---|
| Ошибка декодирования кодировки | В исходном тексте есть байты, которые не декодируются в выбранной кодировке. | Выполните Undo, поменяйте Encoding на кодировку, подходящую для исходной локали, и запустите миграцию снова. |
| Некорректная дата | В одной из старых записей недопустимая временная метка, например 0000-00-00. |
Такие записи безопасно пропускаются. Ничего делать не нужно. |
| Дублирующийся ключ | Запись с таким же идентификатором уже есть в HandyCafe. | Если это была случайная повторная миграция, выполните Undo и Re-run. Если вы объединяете базы, пропуск можно принять. |
Ожидаемый результат: Вы либо принимаете предупреждения как допустимые потери, либо исправляете основную проблему и запускаете импорт заново.
Шаг 8: Выборочно проверьте импортированные данные
Перед тем как отключать старый сервер, вручную проверьте по одному примеру каждого типа записей.
- Откройте Участники на боковой панели. Найдите участника, которого знаете по старой системе. Проверьте имя, баланс и контактные данные.
- Откройте Настройки > Тарификация. Убедитесь, что почасовые ставки совпадают со старым расписанием.
- Откройте Товары. Проверьте названия и цены товаров.
- Откройте Кассовый отчет за недавний исторический день. Сравните итоги с тем, что ожидаете из старой системы.
Ожидаемый результат: Случайные примеры совпадают со старым источником. Если какая-то запись неверна, отметьте проблему. Небольшие отличия в форматировании нормальны. Серьезные расхождения значений обычно говорят о проблеме кодировки или целостности данных, которую стоит изучить перед запуском в работу.
Шаг 9: Включите поддержку времени выполнения для устаревших клиентов (необязательно)
Если вы хотите, чтобы существующие клиенты V3 или V4 продолжали подключаться во время перехода, включите протокол времени выполнения сейчас.
- Прокрутите к началу страницы настроек устаревших клиентов.
- Включите Enable Legacy Client Support.
- Убедитесь, что порты слушателей (UDP 710, TCP 712, передача файлов 717) не конфликтуют ни с чем в вашей сети.
- Нажмите Save.
Ожидаемый результат: Устаревшие клиенты в LAN появляются в Панели администратора в течение 5--10 секунд. См. Устаревшие клиенты, чтобы управлять ими из панели.
Как откатить миграцию
Если миграция дала неожиданные результаты, ее можно полностью откатить. Оригинальная старая база данных не затрагивается.
- Откройте Настройки > Устаревшие клиенты.
- Прокрутите до раздела Миграция базы данных.
- Нажмите Undo Migration.
- Подтвердите в диалоге.
Каждая перенесенная строка будет удалена из HandyCafe. Статус вернется в never. После этого можно исправить основную проблему (кодировку, очистку исходных данных и т. д.) и снова запустить Start Migration.
Как запустить миграцию повторно
Повторный запуск заменяет перенесенные данные свежими данными из источника.
- Откройте Настройки > Устаревшие клиенты.
- Нажмите Re-run Migration (после первого завершенного запуска кнопка переименовывается из Start Migration).
- Поток работы такой же, как при первом запуске.
Re-run безопасно использовать столько раз, сколько нужно. Он не дублирует данные, потому что заменяет уже созданный результат миграции.
Частые ошибки, которых стоит избегать
- Запуск миграции, пока старый сервер работает. Исходная база может быть заблокирована или содержать частичные записи. Всегда сначала останавливайте старый сервер.
- Игнорирование поля Encoding. Запуск с неправильной кодировкой портит имена участников и сообщения в журналах. Исправление после этого требует Undo и Re-run.
- Закрытие HandyCafe во время миграции. Выполнение прерывается, а часть данных уже записана. Для восстановления нужен Undo. Всегда дождитесь завершения окна прогресса.
- Пропуск шага выборочной проверки. Если доверять только количеству записей, можно не заметить тонкие проблемы вроде несовпадения локали или ошибок округления.
- Слишком раннее удаление старой установки. Храните исходные файлы как минимум один полный платежный цикл после миграции. Если в месячном отчете всплывет расхождение, вы сможете посмотреть на оригинальные записи.
- Миграция без резервной копии. Скопируйте папку старой установки до первой миграции. Хотя миграция не изменяет источник, случаются и проблемы с диском, и случайности. Резервная копия - дешевая страховка.