Preface

When I started working in Technology LTD in 2013, the company had already been developing software for one of the most leading taxi booking services in Russia - Maxim. And one of the tasks of that time was to start using PostgreSQL database server instead of the MSSQL.

We started the migration process from one database management system to another and discovered two key features of PostgreSQL.

First, set of tools for both development and maintenance of databases at that time was vastly inferior to the well-known MSSQL.

Second, an architecture of the existing information system included a significant overlap of application business logic resided in the database. These are database views related to a notable number of tables and stored procedures contained there.

We faced with the significant complexity of the migration process because, unlike DBMS such as MSSQL or Oracle, which recompile invalidated database objects, PostgreSQL acted in a very different manner.

Our worst nightmare becomes a hell of dependencies between objects. While of recreating an object, if it has a reference from other database objects, we had to delete all the dependent objects and create them again after recreating the parent object.

It was then when we had an idea of creating our own product, which first of all would be able to solve the problem occurring while forming the migration script with dependent objects, and above that - able to ease the work of the developer in many other ways such as: code completion, code navigation, forming of scripts with test data for existing tables etc.

Currently, pgCodeKeeper solves most of the problems at hand. But we are not planning to stop here. Next, we are aimed at both improving the existing possibilities and achieving new goals.

We work hard for pgCodeKeeper to become a tool for database objects refactoring, as well as for improving work with the pl/pgSql code, and retrieving and displaying data.

Now that we have pgCodeKeeper, working with PostgreSQL has become significantly easier. In late 2017, it was decided to make our product code subject to one of the existing open source licenses. We went for the Apache 2.0. license. And thanks to that, pgCodeKeeper is now available for many participants all over the world.

I thank you for the interest you have shown in our product and wish you pleasant work with pgCodeKeeper.

Head of software development, Naberezhnye Chelny
Andrew G. Saushkin, 2018