Quo vadis, Pyrseas?

When I found Andromeda, over a year ago, I was searching for a tool that would help me maintain PostgreSQL tables supporting web sites, somewhat like a Django admin app, but without Django itself since that was not part of the stack. Ideally, this tool would also facilitate table redesign. I had already written a maintenance app, using CherryPy, Mako and SQLAlchemy, but it was cumbersome to add or make changes to it, and database version control was limited to storing the latest CREATE TABLE statements in a Subversion repository.

Andromeda looked attractive because of its version control features and the capability of automatically generating admin apps. However, after experimenting, I found it lacked the ability to instropect an existing database, requiring you to input the schema in its own YAML format. Pyrseas was born as a result of thinking on how to improve this.

Fast forward to the present: Pyrseas 0.4.0 has been released, supporting about 70% of the PostgreSQL DDL features. This seems like a good time to reflect on where to go next, both short term and long term.

Database Version Control

On the version control front, the following tasks come to mind:

  • Add support for missing DDL features: TEXT SEARCH objects, USERs/ROLEs, TABLESPACEs, FDWs and EXTENSIONs.
  • Ensure existing DDL features are covered fully, i.e., all syntax options
  • Add further options to dbtoyaml/yamltodb for selective output or SQL generation
  • Package Pyrseas as a PG 9.1 EXTENSION, allowing access from other languages and tools
  • Support migration of data, i.e., when ALTER TABLE is not enough
  • Your favorite version control feature

Application Generation

Progress on this front has been slow. Pyrseas could generate minimalist web admin apps with CherryPy, Jinja2 and perhaps something like WTForms, but how many users would want to use them? Conversely, how many would also want support for HTML5, JQuery, or some other WSGI server or templating engine?

I’m not decided, but I still need that admin app, so perhaps I’ll build the capability and blog about it, for tutorial purposes, as I have done so far.

What do you think? What is your favorite database version control feature? What would you like to see in a database web app generation tool? Let me know …

P.S. I’ll be attending PGBR 2011, so hopefully I can hear from some of you personally, in English, em Português o en español.

8 thoughts on “Quo vadis, Pyrseas?

    • Olá Dickson,

      I started doing web development with PHP and MySQL. I then upgraded to PostgreSQL. Later I explored Rails and Ruby, before settling on Python. At the time, Rails support for PG was quite weak, and IIRC it had limitations similar to Django –everything has to have a single integer as primary key, i.e., not my idea of good database design. I’ll take a second look.

  1. For an admin interface: http://sprox.org/ is used by tg2/pylons and is supposed to be framework agnostic. Might make a good foundation and probably a direction I’m headed in, being interested in postgres/oracle interop (and django limitation mentioned above was how i wound up at pylons)

    • Sprox looks somewhat interesting, but has too many other dependencies for my purposes (SQLAlchemy and ToscaWidgets, which brings in FormEncode, WebOb, simplejson).

  2. Pingback: Joe Abbate: Quo vadis, Pyrseas? | Python, PostgreSQL | Syngu

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.