Перенос данных
Материал из ISPWiki
Содержание |
Общие сведения о переносе данных
Начиная с версии 4.0.54.1 в составе дистрибутива BILLmanager присутствует утилита переноса данных из сторонних биллинговых систем. Перенос осуществляется из базы данных сторонней системы в базу данных BILLmanager напрямую, для этого используется исполняемый файл программы переноса и файл правил, который представляет собой XML файл составленные по определенной схеме.
Из-за возможной несовместимости функционала BILLmanager и системы, из которой производится перенос данных, некоторые данные не возможно перенести, либо при переносе данные корректируются для обеспечения совместимости
Рекомендуется производить перенос в чистую базу BILLmanager.
Системы биллинга, для которых поддерживается перенос данных
- Root Panel
- Joonte
- WHMCS
Порядок действий при переносе
При выполнении переноса данных желательно придерживаться определенных этапов:
- Подготовка к переносу.
- Осуществление переноса данных.
- Проверка перенесенных данных.
Подготовка
Для подготовки BILLmanager и сторонней системы к переносу данных необходимо выполнить следующие шаги:
- Ограничить доступ клиентов к сторонней системе биллинга и BILLmanager. Этот шаг необходим для того, чтобы были перенесены все данные, содержащиеся в сторонней системе и не произошло сбоев при переносе из-за совпадения ID записей в базе данных.
- Установка и первый запуск BILLmanager, если этот шаг еще не был выполнен.
- Создание резервной копии базы BILLmanager. Необходимо для восстановления состояния BILLmanager до переноса.
- Создание резервной копии базы сторонней системы. Необходимо во избежание несанкционированных изменений данных в базе сторонней системы. В процессе переноса данные сторонней системы не должны быть изменены, но создание резервной копии не будет лишним. Также можно использовать полученную резервную копию вместо оригинальной базы данных сторонней системы и производить перенос из нее, предварительно создав новую базу данных и загрузив туда данные.
- Проверить доступность базы данных, из которой будет производится перенос информации, с сервера, на котором установлен BILLmanager.
Осуществление переноса
Исполняемый файл программы переноса можно найти по пути (path)/sbin/billimport, где (path) - путь к папке установки BILLmanager.
Файлы правил переноса данных можно найти по пути (path)/var/billimport/, где (path) - путь к папке установки BILLmanager. Имена файлов правил переноса данных имеют *.importmap.
- Запуск программы переноса
Возможны два варианта запуска программы переноса:
- Без использования графического интерфейса путем передачи всех необходимых параметров в строке запуска командной строки. Варианты параметров:
- H - Показать помощь и выйти из программы.
- V - Показывает версию программы.
- s - Включает не графический режим.
- v - Включает вывод дополнительной информации, имеет смысл только с опцией '-s'.
- S - Выводит список доступных файлов правил переноса.
- h <hostname> - задает <hostname> в качестве имени сервера баз данных стороннего биллинга.
- u <username> - задает <username> в качестве имени пользователя для подключения к серверу баз данных стороннего биллинга.
- p <password> - задает <password> в качестве пароля пользователя для подключения к серверу баз данных стороннего биллинга.
- n <dbname> - задает <dbname> в качестве имени базы данных стороннего биллинга.
- f <filename> - задает <filename> в качестве файла правил переноса.
- Пример строки запуска: ./billimport -h 127.0.0.1 -sv -u username -p password -n dbname -f filename.importmap
- С использованием графического интерфейса (этот способ подробнее описан ниже).
Запуск программы переноса производится в консоли, после запуска Вы увидите следующее окно приветствия:
- Выбор правила переноса по имени системы из которой производится перенос
- Ввод имени сервера на котором располагается база данных сторонней системы
- Ввод имени пользователя для подключения к базе данных
- Ввод пароля пользователя для подключения к базе данных
- Ввод имени базы данных из которой будет производится перенос данных
Если возникнет ошибка подключения программа попросит перепроверить данные
- Окно процесса переноса
- Окно завершения процесса переноса
- Лог файл переноса данных можно найти по (path)/var/billimport.log, где (path) - путь к папке установки BILLmanager.
Проверка
После выполнения переноса данных необходимо проверить следующие данные:
- Проверить лог файл переноса на наличие ошибок
- Проверить информацию о компании и проектах
- Проверить группы тарифных планов
- Проверить сервера
- Проверить настройку регистраторов доменов
- Проверить тарифные планы:
- Наименование
- Внутреннее имя (имя на сервере)
- Стоимость установки
- Активные для тарифа сервера (регистратора)
- Активные для тарифа дополнительные услуги и стоимость их заказа
- Сроки заказа тарифов, их стоимость
- Проверить остальные настройки биллинга
- Проверить наличие и количество клиентов, их текущий баланс
- Проверить количество и срок действия услуг
- Проверить настроенные платежные системы
- Проверить права сотрудников
- Выборочно проверить данные клиентов
Если перенос данных завершается с ошибкой, необходимо вернуть базу данных в предшествующее переносу состояние и сообщить о возникающих ошибках через центр поддержки или на форуме. После исправления ошибок в программе переноса и/или файле правил можно будет повторить процесс переноса данных.
Техническая информация
Формат файла конфигурации переноса
Файл правил переноса данных представляет собой XML файл, состоящий из следующих разделов:
- Имя системы, для которой описываются правила и описание
Пример:
<name>Root Panel</name> <desc>Import data from Root Panel</desc>
- Параметры, которые используются при переносе данных
Пример:
<localparams> <param> <name>grpinc</name> <sql>select ifnull(max(id), 0)+1 from user</sql> </param> </localparams>
где:
- localparams - начало раздела параметров
- param - начало описания параметра
- name - имя параметра
- sql - SQL запрос инициализации параметра, запрос выполняется в базе данных BILLmanager
- Правила переноса для каждой таблицы в отдельности
Пример:
<table> - начало описания правила <name>admin_groups</name> - имя таблицы в базе сторонней системы <billname>user</billname> - имя таблицы в базе BILLmanager <desc>Importing admin groups</desc> - описание правила <type>sql</type> - тип правила <sql>select id as id, name as name, 'en' as lang, '1' as isgroup, '1' as account from admin_groups</sql> - SQL запрос выборки данных из таблицы сторонней системы. <init>grpinc</init> - параметр, инициализируемый пере началом обработки правила. <fields> - описание сопоставления полей таблицы, полученной в результате выполнения запроса в сторонней системе и таблицы в BILLmanager <field> - начало описания сопоставления <name>id</name> - имя поля таблице-выборке <billname>id</billname> - имя поля в таблице BILLmanager <func>%id%+%grpinc%</func> - функция применяемая к значению, полученному в результате запроса перед записью в базу BILLmanager. Здесь %id% - имя поля (описанное в name), %grpinc% - параметр инициализированный ранее. Все значения подставляются перед внесением в базу данных. </field> <field> <name>name</name> <billname>name</billname> </field> <field> <name>lang</name> <billname>lang</billname> </field> <field> <name>isgroup</name> <billname>isgroup</billname> </field> <field> <name>account</name> <billname>account</billname> </field> </fields> </table>
Особенности переноса данных из различных систем
Root Panel
При переносе данных из Root Panel переносятся следующая информация:
- Группы пользователей администратора
- Пользователи администратора (сотрудники), к имена пользователей добавляется приставка new_
- Аккаунты клиентов
- Пользователи клиентов
- Профили клиентов
- Счета пользователей
- Привязка пользователей к проекту
- Привязка профилей к компании
- Тикеты и сообщения к ним
- Сервера
- Регистраторы
- Группы тарифов
- Группы зон
- Тарифы для доменных зон
- Тарифы
- Заказы доменов
- Заказы








