CSV и конфигурационный файл должны быть в кодировке UTF-8. Расширение файлов .csv для файла с абонентами и .conf для файла с настройками.
1. Допустим csv файл выглядит в нашем случае вот так:
Фильчаков Андрей Петрович;33.1;Белгород;Ленина;3;1;115;89221100331;15J34;Безлимит512;10.0.0.8;AA:BB:CC:DD:11:22;IP;3.3.3.3
Иванов Павел Сидрович;22.5;Москва;Сталина;4;2;8;89991112233;HGJ34;Безлимит1024;192.168.31.5;11:22:33:44:55:66;VPN;1.1.1.1
Козлов Роман Алексеевич;78.4;Омск;Хрущева;5;3;45;89123336677;B389D;Безлимит5120;172.25.3.7;11:AA:22:BB:33:CC;IP;2.2.2.2
В табличном виде вот так:
Фильчаков Андрей Петрович | 33.1 | Белгород | Ленина | 3 | 1 | 115 | 89221100331 | 15J34 | Безлимит512 | 10.0.0.8 | AA:BB:CC:DD:11:22 | по ip static | 3.3.3.3 |
Иванов Павел Сидрович | 22.5 | Москва | Сталина | 4 | 2 | 8 | 89991112233 | HGJ34 | Безлимит1024 | 192.168.31.5 | 11:22:33:44:55:66 | по vpn pptp, pppoe | 1.1.1.1 |
Козлов Роман Алексеевич | 78.4 | Омск | Хрущева | 5 | 3 | 45 | 89123336677 | B389D | Безлимит5120 | 172.25.3.7 | 11:AA:22:BB:33:CC | любая через RADIUS | 2.2.2.2 |
2. Создаем конфигурацию для вашего csv файла т.е какие поля из CSV соответствуют полям в бд биллинга. Первое поле в csv считается 0-вым. Далее в конфигурации Вы указываете имя поля в биллинге и значение столбца в csv файле, которое запишется в это поле биллинга
Пример конфига для нашего csv файла (описания столбцов не заканчивается запятой, она вызовет ошибку миграции).
{ "fields": { "Название/ФИО": 0, "Баланс": 1, "Город": 2, "Улица": 3, "Номер дома": 4, "Корпус": 5, "Номер квартиры": 6, "Логин": 7, "imported_id": 7, "Номер договора": 7, "Номер SMS для оповещений": 7, "Сгенерированный пароль": 8, "Тариф": 9, "IPv4": 10, "MAC": 11, "Тип авторизации": 12, "NAS/BRAS": 13 }, "options":{ "Папка для импорта": "Миграция", "Разделитель csv": ";", "Формат даты": "%d.%m.%Y", "Наследовать параметры от родительской папки": "True", "Разделитель телефонов": " ", "Следующее списание": "16.07.2016", "Тип списания":"Предоплата", "Метод списания":"Ежемесячно равными долями в день" } }
Обязательно прочтите описание полей ниже |
imported_id - уникальный идентификатор записей в CSV
Названия остальных полей совпадают с их описанием в интерфейсе управления абонентами
NAS/BRAS - к какому маршрутизатору требуется привязать учетную запись - писать текстом в CSV. Просто название NAS'а без IP в скобках
Тип авторизации - тип авторизации пользователей (общий для всех добавляемых пользователей)
Следующее списание - Дата, с которой начнет считать биллинг. Рекомендуется ставить дату миграции.
Список типов авторизации:
по vpn pptp, pppoe по ip по CarbonAgent по ip+CarbonAgent через веб через ip+веб любая через RADIUS
2. Копируем конфиг и CSV-файл в /app/asr_billing/root/
3. Заходим в контейнер биллнг
chroot /app/asr_billing
4. Останавливаем worker.
/etc/init.d/worker stop
5. Запускаем скрипт миграции без параметров
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.pyc
будет выведена инструкция к дальнейшим действиям.
6. После миграции необходимо выполнить активацию абонентов, выполнив скрипт
python /usr/lib/python2.6/site-packages/python_tools/client_fix_scripts/unblock_after_migration.py
7. Запускаем worker
/etc/init.d/worker start
8. Проверяем миграцию
Логи миграции/Скорость миграции
Оценить скорость прохождения миграции, запущенной с другой машины, можно оценить в логе миграции /var/log/import_csv.log