On Mon, Apr 16, 2012 at 10:22:19AM -0500, Merlin Moncure wrote: > On Mon, Apr 16, 2012 at 10:05 AM, Roger Leigh <rleigh@xxxxxxxxxxxxx> wrote: > > The reason for the above is that I'd very much like to be able to > > version my entire application's schema using the extension mechanism > > (or something based upon the ideas in the extensions mechanism). Since > > SCHEMA is already taken, maybe CREATE/ALTER/DROP_APPLICATION. This > > would permit easy installation and upgrade of all the objects relating > > to a single application installed in the database. > > not following that -- it sounds like you are trying to hook into the > grammar? that's something you can't do through an extension. but it's > an interesting thought to do application versioning through the > extension system...i'm pretty sure it hasn't been tried. there may be > some pitfalls though. This was mainly just speculative--in the case that the extension system didn't support everything I wanted, I was wondering if extending the grammar would be a viable approach; obviously it would require other work too! Every project I've worked on which uses PostgreSQL has independently implemented its own set of installation and upgrade scripts, which has typically included some form of table for storing the current schema version and other settings to allow the scripts to safely do their job. However, I'm not a big fan of unnecessary wheel reinvention, and if PostgreSQL could provide a standard mechanism for doing this which all applications could utilise, that would be (IMO) an absolutely fantastic feature. If extensions can be used as they stand to realise this, then that's absolutely great: the end user installation instructions can be reduced to CREATE EXTENSION myapplication; and the equivalent for upgrades. I'm not sure if another keyword would be useful in this context, since this is much more than a single extension, it's an entire schema. Regards, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' schroot and sbuild http://alioth.debian.org/projects/buildd-tools `- GPG Public Key F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general