| Время выполнения инструкции: до 10 секунд на абонента,а так же до 1 минуты на инициализацию скрипта, общее время зависит от загруженности сервера и количества абонентов |
chroot /app/asr_billing
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc sync_balance.conf balances.csv sync_balance
Вместо sync_balance.conf и balances.csv укажите имена Ваших файлов: конфигурационного и с балансами для синхронизации
Синхронизация проводится по полю "Баланс", в соответствии со статьей по миграции
Пример конфигурационного файла для синхронизации балансов находится в контейнере /app/asr_billing/ в директории /usr/lib/python2.7/site-packages/carbon_migration_scripts/import_csv_sync_balance.config.example
Для получения информации из биллинга Carbon Billing5 в формате "Номер договора - текущий баланс", необходимо выполнить отчёт:
select
distinct
A.CONTRACT_NUMBER as "Договор",
round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2) as "Текущий баланс"
from ABONENTS A
left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID
where A.IS_FOLDER=0
and a.deleted=0
Для получения информации из биллинга Carbon Billing4 в формате "Номер договора - текущий баланс", необходимо выполнить отчёт:
select contract_number, (DEBIT + OSTATOK - CREDIT)/10000000000.00 from users
where id<100000 and deleted=0 and end_user=1
Пример sync_balance.conf
{
"fields": {
"Номер договора": 0,
"Баланс": 1
},
"options":{
"Разделитель csv": ";",
"Наследовать параметры от родительской папки": "True",
"Формат даты": "%d.%m.%Y",
"Следующее списание": "01.03.2015"
}
}
Синхронизация балансов при миграции из Carbon Billing 4.
В случае, если между тестовой миграцией абонентов из Carbon Billing 4 и запуском Carbon Billing 5 в коммерческую эксплуатацию прошло некоторое время и балансы абонентов изменились, может потребоваться синхронизация балансов без перемиграции всей базы данных. В таком случае синхронизацию можно проводить по csv файлу, полученному при экспорте из Carbon Billing4:
1) Получаем данные из биллинга 4й версии
Для примера:
IP биллинга 4-ой версии: 1.1.1.1
Пароль БД: servicem
chroot /app/asr_billing/ python /usr/lib/python2.7/site-packages/carbon_migration_scripts/crb4_csv_export/main.pyc 1.1.1.1 servicem
2) Создаем и открываем файл sync_balance.conf. В примере используется текстовый редактор vim. Можете использовать любой удобный для Вас текстовый редактор.
vim /root/sync_balance.conf
3)Записываем туда следующие данные без изменений и сохраняем файл(Поля в точно таком же порядке) :
{
"fields": {
"Номер договора": 3,
"Баланс": 9,
"Следующее списание": 69
},
"options":{
"Разделитель csv": ";",
"Наследовать параметры от родительской папки": "True",
"Формат даты": "%d.%m.%Y"
}
}
4)Запускаем синхронизацию балансов по файлу, полученному в пункте 1, /root/new_migration/csv_output/abonent.csv
| В этом файле в 3 столбце будет номер договора, в 9 баланс, следующее списания в 69(отсчет идет с 0) |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc /root/sync_balance.conf /root/new_migration/csv_output/abonent.csv sync_balance
