“Taming Serpents and Pachyderms” will explore the thinking behind the Pyrseas project, a free and open source software project to develop a framework and utilities to create, upgrade and maintain a PostgreSQL database.
The goal of the project is to follow through and enhance on the concepts of the Andromeda project. The name Pyrseas comes from Python, the programming language, and Perséas1, the Greek mythological hero who rescued Andromeda from a sea monster2.
Some may ask why are new utilities or a framework needed: Aren’t SQL CREATE and ALTER TABLE statements and tools such as pgAdmin or phpPgAdmin sufficient? I hope to provide a complete answer through these series of posts. However, for now consider that while the SQL statements and tools may suffice for the simpler use cases, they pose challenges when dealing with multiple developers, version control, multiple table updates, and denormalized databases.
We’ll start the exploration with the issues posed by agile software development and version control on application projects relying on a DBMS to store and manage their data. Then we’ll address the problems of automating basic CRUD database operations so that they can be performed by naive users, e.g., without exposing internal identifiers.
1. The common English name for Perséas is Perseus and in Ancient Greek it’s Perseos. However, in modern Greek Περσέας is the more common spelling for the mythical hero.
2. Perséas is perhaps better known for having killed Medusa.