Миграция абонентов из CSV файла

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (4)

просмотр истории страницы
* *dynamic_attributes* содержит список [Реквизитов|Реквизиты], которые не были созданы в биллинге, при этом для каждого абонента будет создан отдельный реквизит.

h2. Как запустить миграцию фоном и отключиться от сервера

Нужно отвязать процесс от терминала, и делается это сразу при запуске. Например:
{code}setsid python2.7 import_csv_v2.pyc IntercomConverted.config.json IntercomConverted.csv migrate_abonents 2>&1 >import_csv_v2.`date +%Y-%m-%d_%H%M%S`.log & disown -a{code}
Эта команда:
* Позволит закрыть терминал и отключиться от сервера
* Будет дублировать лог в папку, где Вы выполнили команду.
* В названии лога укажет дату запуска миграции, например: import_csv_v2.2021-04-15_004551.log

h2. Ошибки миграции

h2. Как сделать csv


h3. Выгрузка запросом к базе данных

Уточните структуру базы в документации или у техподдержки биллинга-источника структуру базы, сформируйте запрос.

h3. Из Excel

Можно воспользоваться конвертером в интернете: [https://conversiontools.io/conversion/convert_xml_to_csv]

h3. Если есть CSV, но формат совсем подходит (разделитеть, кавычки и тд)

Можно открыть файл с LibreOffice и пересохранить в нужном виде, но иногда он "ломает" даты и большие числа - например, номер банковского счёта из 16 цифр может укоротить, отразив в экспоненциальной форме (например 489089058900e17), и это испортит всю выгрузку.

Для решения, воспользуйтесь утилитой [csvformat из пакета csvkit|https://csvkit.readthedocs.io/en/latest/scripts/csvformat.html]

Установить в Ubuntu 18.04 и выше можно так:
{code}sudo apt update; sudo apt install -y csvkit{code}

Преобразовать так:
{code}csvformat -D '|' -Q '' -U 3 IntercomWorkbenchRaw.csv | sed 's/NULL//g' > IntercomConverted.csv{code}
В качестве разделителя будет использован символ "|", а все поля будут выгружены без кавычек, а поля "NULL" станут пустыми (такая проблема может быть в старых версиях MySQL Workbench).