Миграция из других биллинговых систем

В Ubilling, начиная с версии 0.3.9 в «Консоли разработчика» появился функционал позволяющий максимально упростить миграцию абонентской базы из других систем. Сразу предупреждаем - данный функционал является де-факто опасным и играться с ним на продакшн серверах - более чем глупая затея.

Для начала нам потребуется

  1. Свежеустановленный Ubilling (да, да - с полностью чистой базой)
  2. Экспортированные из другой системы данные о пользователях в текстовом виде
  3. Немного терпения

Поехали мигрировать

Допустим, мы настолько ленивы, что хотим сконвертировать целых трех с половиной пользователей из такого вот файла в кодировке cp1251:

samplebase.csv
Логин;Пароль;IP;MAC;Тариф;Деньги;Кредит;Кредит до;Адрес;Ф.И.О.;Договор;ВсегдаОнлайн;Отключен;Пользователь заморожен
zlo_hev11ap8_0nt6;p7gjgkh9;172.30.0.2;99:45:58:53:53:82;Unlim-100;105;0;;Шевченка 11/8;Федір Крюгер;;1;0;0
i8dq92aj;p85kc;172.30.0.3;99:43:54:78:71:72;Unlim-5;50;0;;Вязов 13/1;Оксана Хтивий;;1;0;0
jzxfn4qn;71gns;172.30.0.4;99:46:22:98:16:59;Unlim-5;50;0;;Вязов 13/2;Ліля Юзеренко;;1;0;0
t7gqx6hv;miv0l;172.30.0.5;99:68:21:92:13:15;Unlim-5;0;0;;Вязов 13/3;Аня Жук;;1;0;0
ggzuypgp;ewl3b;172.30.0.6;99:53:34:88:54:48;Unlim-5;0;0;;Вязов 13/4;Андрій Пушний;;1;0;0
q63vi8ah;7cvul;172.30.0.7;99:44:42:26:61:37;Unlim-5;20;0;;Вязов 13/5;Наталка Ололюк;;1;0;0
v6x3edx5;2omzn;172.30.0.8;99:26:87:94:34:71;Unlim-5;0;0;;Вязов 13/6;Дмитро Тимошенко;;1;0;0

Как видим, разделителем полей здесь выступает »;», поля вполне себе вменяемо подписаны, все пользователи находятся на тарифах «Unlim-5» и «Unlim-100» и в подсети типа «172.30.0.0/24».
Для начала создадим нужные нам тарифы:

Далее по аналогии добавляем тариф «Unlim-100» и не забываем присвоить им скорость в модуле «Скорость тарифов».

Также добавляем сеть и сервис при помощи соответствующего модуля «Сервисы и услуги»:

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

samplebase.csv
zlo_hev11ap8_0nt6;p7gjgkh9;172.30.0.2;99:45:58:53:53:82;Unlim-100;105;0;;Шевченка 11/8;Федір Крюгер;;1;0;0
i8dq92aj;p85kc;172.30.0.3;99:43:54:78:71:72;Unlim-5;50;0;;Вязов 13/1;Оксана Хтивий;;1;0;0
jzxfn4qn;71gns;172.30.0.4;99:46:22:98:16:59;Unlim-5;50;0;;Вязов 13/2;Ліля Юзеренко;;1;0;0
t7gqx6hv;miv0l;172.30.0.5;99:68:21:92:13:15;Unlim-5;0;0;;Вязов 13/3;Аня Жук;;1;0;0
ggzuypgp;ewl3b;172.30.0.6;99:53:34:88:54:48;Unlim-5;0;0;;Вязов 13/4;Андрій Пушний;;1;0;0
q63vi8ah;7cvul;172.30.0.7;99:44:42:26:61:37;Unlim-5;20;0;;Вязов 13/5;Наталка Ололюк;;1;0;0
v6x3edx5;2omzn;172.30.0.8;99:26:87:94:34:71;Unlim-5;0;0;;Вязов 13/6;Дмитро Тимошенко;;1;0;0

После чего переходим непосредственно к конвертации:

Вверху мы видим сколько всего столбцов с данными было обнаружено (Found count of data columns) а также то как с точки зрения конвертера выглядят эти данные относительно столбцов (First of imported data rows). Слева - номера столбцов (Conumn number), справа - наглядно показано содержимое столбца (Column content).

Далее нам потребуется установить соответствия номеров столбцов реальным данным в диалоге ниже (Select data columns and their values), а также установить тип конвертации который мы хотим осуществить (User registration mode):

В показанном выше на скриншоте примере мы устанавливаем всем пользователям кредиты в ноль (User credit limit=Set to zero), делаем их всех активными (User AlwaysOnline state=1, User Down state=0, User Passive state=0), выбираем им заведенную нами сеть (Target network=172.30.0.0/24) и указываем режим регистрации (User registration mode) как прямую регистрацию пользователей на локальном Ubilling сервере (Ubilling live register). Также есть возможность получить вместо регистрации SQL дамп пригодный для дальнейших правок либо разворачивания на другом сервере (Show SQL dump).
Следующим шагом должна быть проверка того, все ли у нас нормально выцепилось из файла с абонбазой и подтверждение нашего желания зарегистрировать пользователей.

После подтверждения, можно смело идти в модуль «Онлайн» проверять что же оно наконвертировало. В нашем случае это все будет выглядеть как-то так:

Важно: Состоянием на стабильный релиз Ubilling 0.4.4 модуль «Миграция» все еще является разрабатываемым и пока что не умеет автоматически заселять пользователей по адресам. Адресные данные из начального файла временно пишутся в поле «Примечания» пользователя и могут быть использованы для ручного заселения, либо последующего постпроцессинга дополнительными скриптами.

migration.txt · Последние изменения: 2014/04/13 02:56 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki