Просмотр запущенных контейнеров:
docker ps |
Остановка сервиса Address Book без очистки docker container и docker network:
./ecss-address-book.sh stop |
Остановка сервиса Address Book с очисткой docker container и docker network:
./ecss-address-book.sh down |
Запуск сервиса Address Book:
./ecss-address-book.sh up |
Запуск обновления сервиса Address Book. Можно указать дополнительный параметр --version с желаемой версией:
./ecss-address-book.sh update [--version 1.3.1] |
Перезагрузка сервиса Address Book:
./ecss-address-book.sh restart |
Данный раздел необязателен, если необходима лишь работа с персональными адресными книгами или планируется импортировать адресную книгу CSV-формата. |
Подключитесь к docker-контейнеру сервиса Address Book:
docker exec -it address-book-stable_server_1 bash |
Далее подключитесь к Erlang node по имени:
./ecss_address_book remote --name ecss_address_book |
Выполните команду для запуска миграции LDAP:
EcssAddressBookCore.Actions.LdapImport.import() |
Для базовой проверки полноты миграции можно обратиться напрямую к БД с запросом количества контактов:
EcssAddressBookDb.Actions.Contacts.count(%{})
{:ok, 1557} |
Число после :ok должно совпадать с количеством контактов LDAP.
Для выхода из iex нажмите Ctrl+C дважды.
Данный раздел необязателен, если необходима лишь работа с контактами из LDAP. |
USE ecss_address_book;
SELECT
'external_id',
'full_name',
'first_name',
'middle_name',
'last_name',
'org',
'title',
'description',
'avatar_path',
'source',
'emails',
'phone_numbers',
'phone_description',
'phone_types'
UNION ALL
SELECT
contact.uuid,
contact.contact_name,
contact.first_name,
contact.middle_name,
contact.last_name,
contact.company,
contact.position,
contact.description,
contact.photo,
source.domain,
IFNULL((SELECT GROUP_CONCAT(DISTINCT email.email ORDER BY email.email SEPARATOR ',') FROM email WHERE email.contact_id = contact.id), ''),
IFNULL((SELECT GROUP_CONCAT(DISTINCT phone.digits ORDER BY phone.digits SEPARATOR ',') FROM phone WHERE phone.contact_id = contact.id), ''),
IFNULL((SELECT GROUP_CONCAT(DISTINCT phone.description ORDER BY phone.description SEPARATOR ',') FROM phone WHERE phone.contact_id = contact.id), ''),
IFNULL((SELECT GROUP_CONCAT(DISTINCT label.name ORDER BY label.name SEPARATOR ',') FROM label INNER JOIN phone ON label.id = phone.label_id WHERE phone.contact_id = contact.id), '')
INTO OUTFILE '/var/lib/mysql-files/your_file.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM contact
LEFT JOIN source ON source.id = contact.source_id
GROUP BY contact.id;
|
Название CSV файла не должно содержать кириллические символы и точки. Также файл должен иметь расширение .csv. Чтобы сервис мог увидеть данный файл, необходимо поместить его по следующему пути:
|
Имя файла влияет на источник контакта. Например, для файла с именем valid_format.csv, источник (source) будет указан как csv.valid_format. В имени файла допускаются только латинские буквы и цифры, все остальные символы заменяются на нижнее подчеркивание. |
Подключитесь к docker-контейнеру сервиса Address Book:
docker exec -it address-book-stable-server-1 bash |
Далее подключитесь к Erlang node по имени:
./ecss_address_book remote --name ecss_address_book |
Выполните команду для запуска миграции LDAP:
EcssAddressBookCore.Actions.CsvImport.import("/home/csv_data/your_file.csv") |
Для базовой проверки полноты миграции можно обратиться напрямую к БД с запросом количества контактов:
EcssAddressBookDb.Actions.Contacts.count(%{})
{:ok, 1337} |
Число после :ok должно совпадать с количеством контактов CSV.
Для выхода из iex нажмите Ctrl+C дважды.