В наше время сложно представить производство, обходящееся без использования систем управления базами данных (СУБД). Они используются повсеместно для хранения данных и управления потоками информации, будь то информация о заказах, клиентах, работниках и т. д.
Сложность хранимой информации, количество взаимосвязей между объектами данных и сложность процессов обработки растет. По этой причине современные СУБД могут содержать десятки тысяч различных объектов, обрабатывающих и хранящих данные организации.
Разумеется, подобные системы требуют обслуживания, разработки, доработки под обновляющиеся нужды, поддержки со стороны разработчиков БД. Для эффективной работы этим людям необходимы инструменты, которые обеспечат им удобство разработки сравнимое с другими областями и языками программирования, как например на языках C# или Java.
Другим фактором разработки для СУБД является их стоимость. Лицензии для коммерческих СУБД стоят немалых денег [1], даже для больших компаний. И это, конечно, побуждает к поиску решений в области свободного ПО.
Одно из таких решений - PostgreSQL. Постоянно развивающаяся, надежная, многофункциональная, соответствующая стандартам СУБД завоевывает все большую популярность. [2]
На стыке этих проблем - необходимости инструментов разработки для набирающей популярность свободной СУБД - и возникла данная работа.
Так, в 2013 году группа компаний «Такси «Максим»» приняла решение о миграции своей IT инфраструктуры на свободное ПО, в частности, уход от использования СУБД MSSQL к СУБД PostgreSQL. Вскоре, руководством и работниками (программистами БД) было замечено отсутствие удобного инструментария для СУБД PostgreSQL, выполняющего некоторые важные
задачи, возникающие в процессе разработки и поддержки базы данных, в частности: версионирования кода объектов схемы базы данных и миграции между их версиями.
Для облегчения, ускорения и улучшения качества работы программистов БД компанией было решено создать собственный инструмент для работы с СУБД PostgreSQL.
В ходе данной работы был спроектирован, реализован и запущен в
эксплуатацию инструмент для разработки баз данных PostgreSQL.
Инструмент решает существующие проблемы разработки:
– дает возможность создавать проекты схем баз данных PostgreSQL,
подобные проектам, создаваемым при разработке на других языках;
– позволяет обходить проблемы с конфликтами зависимостей между
объектами при обновлении схем баз данных.
Тем самым использование данного инструмента повышает
производительность труда программистов БД, повышает удобство и
эффективность их работы.
Продукт получил название “pgCodeKeeper” (хранитель кода
PostgreSQL) и активно используется внутри отдела разработки программного
обеспечения ООО «Технология». Продукт также доступен для внешних
пользователей по адресу http://pgcodekeeper.ru/.
Благодаря использованию мощных технологий синтаксического
анализа, продукт поддерживает большую часть синтаксиса языка SQL,
включая большинство объектов, используемых при создании баз данных
PostgreSQL.
Направления дальнейшего возможного развития продукта:
– добавление поддержки еще не покрытых объектов SQL;
– поддержка новых версий PostgreSQL;
– расширение возможностей редактора кода SQL: интеллектуальное
автодополнение кода, улучшенные переходы по ссылкам на объекты,
улучшенная работа с языками хранимых процедур PL/pgSQL и др.;
– работа с сервером БД напрямую, без использования проекта; внедрение
функционала утилит наподобие pgAdmin.