О проекте
- Клиент: Разработчик и поставщик систем для диагностики и мониторинга состояния промышленного оборудования
- Страна: Россия
- Используемый продукт: Услуги по конвертации
- Исходная технология: Microsoft SQL Server, C#
- Целевая технология: PostgreSQL, C#
- Объем проекта: 150,000 строк кода
- Длительность проекта: 1 месяц на миграцию и 1 месяц на приемку
Одним из продуктов нашего заказчика является программное обеспечение, использующее базу данных. Переход на использование PostgreSQL вместо SQL Server стал необходим для целей импортозамещения как нашего клиента, так и конечных пользователей его продукта.
Результаты
Задача
Программное обеспечение нашего клиента разработано на C#, а также содержит встроенный SQL и файлы с SQL кодом, предназначенные для создания, обновления и функционирования баз данных, используемых конечным пользователем.
Общий объем SQL скриптов составлял около 150.000 строк. Кроме того, скрипты содержали запросы INSERT с первичными данными.
Таким образом, комплексная задача по миграции приложения с SQL Server на PostgreSQL включала: конвертацию файлов с SQL кодом, конвертацию первичных данных, конвертацию встроенного SQL и адаптацию кода приложения на C# для работы с новой СУБД.
Для решения задачи заказчик остановил свой выбор на услуге по миграции баз данных и приложений от Конвертума. Решающим преимуществом стали сжатые сроки и высокое качество, обусловленные высокой квалификацией нашей команды и автоматической конвертацией при помощи инструмента Конвертум Мастер.
Решение
На первом этапе наши эксперты с помощью Конвертум Мастера выполнили конвертацию файлов с кодом SQL с SQL Server в PostgreSQL. Затем автоматические полученные результаты и код приложения были вручную доработаны для корректной работы с PostgreSQL.
Исходный код содержал лишь небольшое количество специфических или сложных для конвертации конструкций. Вот некоторые из них:
- Использование запросов к системным таблицам sys.objects, information_schema.columns и т.п. Для большинства СУБД системные таблицы и логика работы с ними имеют существенные отличия.
- Использование условий на типы столбцов. В SQL Server тип данных является числовым значением, а в PostgreSQL - строкой.
- Использование функции fn_listextendedproperty и приведение констант типа HEX к дате, которые не имеют прямого аналога в PostgreSQL.
- Конвертация данных на китайском языке усложнялась использованием различных кодировок в исходной и целевой базах данных.
Преимущества
Наши эксперты выполнили конвертацию SQL и обновление приложения всего за 1 месяц. В ходе приемки заказчик отметил производительность и надежность результатов конвертации, достигнутых благодаря вниманию к деталям и высокому уровню решений, использованных в полученном коде.
Быстрый переход на PostgreSQL решил не только задачу по импортозамещению, но и обеспечил конкурентные преимущества продукта нашего клиента.