Найти тему

Часть 15. Конвертация - это больно.

Наступил декабрь 2022 года. Журнал диспетчера наконец закончили))). Протестировали, выловили часть багов, исправили, еще раз протестировали. Вроде можно переходить на это приложение.

Для этого нужно было переносить БД. Из MS SQL Server на PostgreSQL. Кроме того, структура нового приложения - совершенно другая, следовательно это не простой перенос. А именно конвертация.

Попробовал написать конвертер на Python. Заодно поработал с библиотекой Pandas. Очень классная библиотека!!! Но ради одной конвертации делать целую программу... Решил, что конвертирую вручную. Для этого использую MS Access.

Плюс: соединение MS Access соединяется с любой БД через ODBC. Минус: MS Access работает только на windows (а я с 2016 года работал только на Mac). Расчехлил свой ноутбук. Вспомнил молодость. Скачал драйверы. Тесты соединений выдали success. Можно творить!

Заготовки SQL запросов на выборку, добавление, изменение сделал заранее. Выбрал день, точнее ночь, когда буду переносить БД. Велел всем диспетчерам на следующее утро уже работать только в новой программе. И в 2 часа ночи приступил к конвертации.

Планировал сделать до 6 утра... Наивный...

Только посмотрите на этого Франкенштейна - текущая БД на MS SQL Server.
Только посмотрите на этого Франкенштейна - текущая БД на MS SQL Server.

Выяснилось, что в текущей базе данных информация неконсистентна, то есть часть записей не имело внешнего ключа (и это при связи один-ко-многим), некоторые обязательные поля - пустые, и еще куча всего по мелочи. Кто хоть раз переносил данные - тот меня поймёт.

Насколько элегантней и продуманней новая БД)))
Насколько элегантней и продуманней новая БД)))

Закончил только в 12:00. С 6 утра клиенты уже звонили. И звонки регистрировались в новой БД. Чтобы сохранить уникальность ключа - изменил начальное значение ключа (примерно прикинул сколько записей конвертируется автоматически + сколько записей добавлю в дальнейшем вручную + 1000 записей на резерв. В итоге всё заработало: база данных потеряла не более 10 записей, а у меня добавилось немного седых волос. Но это того стоило!

Диспетчеры заработали в полную мощь. Клиенты получали максимальное внимание и решение своих проблем в кратчайшие сроки. А когда нравится и клиентам и сотрудникам - нравится и руководству!

Идеальных программ не бывает. И в дальнейшем мы выловили несколько багов. Сделали кучу доработок... Но это было потом.. А сейчас я получал эстетическое наслаждение и кайф от работы приложения, к реализации которого шёл несколько лет...

Вот такая красота получилась!
Вот такая красота получилась!

Нужно было еще присоединить телеграм-бота и связать между собой первый и второй блок: приложения Dispatcher и Errands...

Продолжение...