HandyCafe Docs
owner it-admin

Как перенести данные из старой установки

Этот гид импортирует ваши существующие данные из старой установки HandyCafe V3 или V4 в современный сервер HandyCafe. Миграция не разрушает исходник: оригинальные файлы не изменяются и не удаляются.

Миграция базы данных выполняется только в Windows. Поддержка времени выполнения для подключения устаревших клиентов по оригинальному протоколу работает на любой платформе (см. Настройки устаревших клиентов).

Что понадобится

  • Компьютер с Windows, на котором либо установлены и старая, и современная версия HandyCafe, либо есть доступ к файлу старой базы данных.
  • Доступ администратора к HandyCafe Server.
  • Остановленный старый сервер. Во время миграции в исходную базу данных не должно идти активной записи.
  • Свободное место на диске не меньше размера старой базы данных, чтобы хранить новую копию базы HandyCafe.
  • От 10 до 30 минут без прерываний. Миграция больших наборов данных может занять несколько минут. Не закрывайте HandyCafe во время выполнения.

Шаг 1: Остановите старый сервер

Откройте старое приложение HandyCafe Server. Остановите все сеансы и выйдите из приложения. Если старый сервер работает как служба Windows, остановите службу через services.msc.

Ожидаемый результат: Процесс старого сервера больше не работает. Файл базы данных не удерживается открытым.


Шаг 2: Откройте страницу настроек устаревших клиентов

  1. Запустите HandyCafe.
  2. Откройте Настройки на боковой панели.
  3. Нажмите Устаревшие клиенты.
  4. Прокрутите до раздела Миграция базы данных.

Ожидаемый результат: Если система обнаружит старую установку, страница покажет путь установки, путь к базе данных, версию сервера и количество 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: Запустите миграцию

  1. Нажмите Start Migration.
  2. Откроется окно прогресса. В нем показывается текущий этап и число уже обработанных строк.
  3. Не закрывайте HandyCafe и не переводите компьютер в сон.
  4. Дождитесь завершения. Небольшие наборы данных заканчиваются меньше чем за минуту. Большие наборы могут занять 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: Выборочно проверьте импортированные данные

Перед тем как отключать старый сервер, вручную проверьте по одному примеру каждого типа записей.

  1. Откройте Участники на боковой панели. Найдите участника, которого знаете по старой системе. Проверьте имя, баланс и контактные данные.
  2. Откройте Настройки > Тарификация. Убедитесь, что почасовые ставки совпадают со старым расписанием.
  3. Откройте Товары. Проверьте названия и цены товаров.
  4. Откройте Кассовый отчет за недавний исторический день. Сравните итоги с тем, что ожидаете из старой системы.

Ожидаемый результат: Случайные примеры совпадают со старым источником. Если какая-то запись неверна, отметьте проблему. Небольшие отличия в форматировании нормальны. Серьезные расхождения значений обычно говорят о проблеме кодировки или целостности данных, которую стоит изучить перед запуском в работу.


Шаг 9: Включите поддержку времени выполнения для устаревших клиентов (необязательно)

Если вы хотите, чтобы существующие клиенты V3 или V4 продолжали подключаться во время перехода, включите протокол времени выполнения сейчас.

  1. Прокрутите к началу страницы настроек устаревших клиентов.
  2. Включите Enable Legacy Client Support.
  3. Убедитесь, что порты слушателей (UDP 710, TCP 712, передача файлов 717) не конфликтуют ни с чем в вашей сети.
  4. Нажмите Save.

Ожидаемый результат: Устаревшие клиенты в LAN появляются в Панели администратора в течение 5--10 секунд. См. Устаревшие клиенты, чтобы управлять ими из панели.


Как откатить миграцию

Если миграция дала неожиданные результаты, ее можно полностью откатить. Оригинальная старая база данных не затрагивается.

  1. Откройте Настройки > Устаревшие клиенты.
  2. Прокрутите до раздела Миграция базы данных.
  3. Нажмите Undo Migration.
  4. Подтвердите в диалоге.

Каждая перенесенная строка будет удалена из HandyCafe. Статус вернется в never. После этого можно исправить основную проблему (кодировку, очистку исходных данных и т. д.) и снова запустить Start Migration.


Как запустить миграцию повторно

Повторный запуск заменяет перенесенные данные свежими данными из источника.

  1. Откройте Настройки > Устаревшие клиенты.
  2. Нажмите Re-run Migration (после первого завершенного запуска кнопка переименовывается из Start Migration).
  3. Поток работы такой же, как при первом запуске.

Re-run безопасно использовать столько раз, сколько нужно. Он не дублирует данные, потому что заменяет уже созданный результат миграции.


Частые ошибки, которых стоит избегать

  • Запуск миграции, пока старый сервер работает. Исходная база может быть заблокирована или содержать частичные записи. Всегда сначала останавливайте старый сервер.
  • Игнорирование поля Encoding. Запуск с неправильной кодировкой портит имена участников и сообщения в журналах. Исправление после этого требует Undo и Re-run.
  • Закрытие HandyCafe во время миграции. Выполнение прерывается, а часть данных уже записана. Для восстановления нужен Undo. Всегда дождитесь завершения окна прогресса.
  • Пропуск шага выборочной проверки. Если доверять только количеству записей, можно не заметить тонкие проблемы вроде несовпадения локали или ошибок округления.
  • Слишком раннее удаление старой установки. Храните исходные файлы как минимум один полный платежный цикл после миграции. Если в месячном отчете всплывет расхождение, вы сможете посмотреть на оригинальные записи.
  • Миграция без резервной копии. Скопируйте папку старой установки до первой миграции. Хотя миграция не изменяет источник, случаются и проблемы с диском, и случайности. Резервная копия - дешевая страховка.