Microservice for Search Index of Phone Numbers
В рамках задачи были реализованы следующие задачи:
• нормализовать формат записи телефонных номеров, отсечь код страны, привести к формату удобному для поиска: "9291112233"
• результат сохранить в таблице - завести под неё новую колонку
• создать скрипт для запуска в фоновом режиме - ожидает новые телефонные номера, нормализует их, сохраняет в базу
Как оно работает?
На базу данных production сервера накатывается миграция структуры БД, там же запускается скрипт синхронизации содержания двух колонок базы - с исходным и нормализованным номерами телефонов.
Как использовать?
-
Создать копию базы данных, с помощью скрипта clone_db.py, предварительно добавив в ваши переменные среды SRC_DB_URI - URI исходной БД, FINAL_DB_URI - database URI создаваемой копии БД. Как это сделать в Windows? Linux?
-
Миграция осуществляется средствами alembic, поэтому перед ее применением, необходимо в конфигурационном файле alembic.ini изменить параметр sqlalchemy.url, в который необходимо передать database uri вашей базы данных(FINAL_DB_URI).
Пример:
sqlalchemy.url = postgresql://devman:devman@localhost/devman
Для запуска миграции выполнить следующую команду в терминале находясь в каталоге проекта:
alembic upgrade head
-
Запуск скрипта нормализации format_phone.py, который заполнит созданную в предыдущем шаге колонку нормализованными телефонными номерами.
python3 format_phone.py
The code is written for educational purposes. Training course for web-developers - DEVMAN.org