Hi,
I would like to start implementing a version control system to be used
to track Schema/DDL changes for a DB.
I have compiled and run Pgadmin iii on my computer and figured the
current plugin architecture would not be a perfect fit for this new feature.
I would like to describe briefly what I would like to achieve, and then
the obstacles I face.
I. The functionality I would like to implement would be:
------------------------------------------------------------------
1) Able to compare 2 DBs (Schema and/or Data).
One DB would be the 'Development' DB and the other would be a
'Release' DB
2) Able to generate .sql files to sync the DevDB to RelDB (and vice-versa).
The .sql file would allow:
a) The DevDB to get updated to the current RelDB
b) Once some modifications are in place on DevDB, 'commit' them to
RelDB
c) Once RelDB 'sees' a new commit, it could place the .sql under
source control (BZR, GIT, SVN ...)
d) RelDB could also place a whole bunch of entities under source
control if necessary
3) Able to textually merge code in Stored procedures.
II. Architecture issues
---------------------------
I think PGadmin is the best starting point for a postgresql specific VCS
tool, since it already is able to track all entities within a DB. And
the GUI is really well done.
However, the difficulty I know find is that the current plugin
functionality is somewhat limited and only allows limited exchange with
an external process via command line (specified in plugins.ini file)
Of cours, in order for the VCS system to work a tighter integration is
needed, so here are a couple of questions:
* Has anyone been working on a plugin or extensibility mechanism for
Pgadmin?
* Any suggestions as to the best way to integrate this? Revamp plugin
architecture? Add it directly in existing code?
* Any other issues I might have overlooked in order to have this
functionality shared so others can use it?
Thank you,
David Vaillancourt