On 19 March 2015 at 09:51, Steve Singer <ssin...@afilias.info> wrote:
> On 03/19/2015 06:32 AM, Dave Cramer wrote: > >> Actually I think it has been fixed in bug 349 (Thanks Chris) However I'd >> like to integrate schema changes into something like flyway. >> https://github.com/flyway/ >> >> Not sure how this best plays out yet. >> >> > > I think it would be great to see slony support in some schema management > tools such as flyway,alembic or liquibase > > I see two approaches worth considering > > 1) Have the schema managment tool Call the slonik executable and pass in a > slonik script. > While I see the merit in this from your POV it is rather "blocky" and sort of breaks the spirit of flyway (the only one I have seriously looked at) > > 2) Call the SQL stored procedures directly. This would involve calling > _slonyschema.ddlCapture for each SQL statement. Then calling > ddlScript_complete() > Yes, this is where I was headed. Unfortunately flyway appears to call their hooks as a transaction. I have asked them to provide a hook without a transaction. > > I would recommend against trying to duplicate the functions in ddlScript > capture or ddlScript_complete. I'll describe what they do in 2.2 > for interest sake but I don't see any reason why you would want to > re-invent this code. > > Agreed. > The advantage of just using option 1 is that we (the slony developers) try > to keep the slonik command syntax somewhat stable between releases but we > reserve the right to change the API of the stored functions as we desire. > We don't consider the stored functions a stable API. > The pg-admin folks use the stored functions directly and keeping pg-admin > working with the various slony versions and API changes > in something they need to keep on-top of. You would have to take on a > similar responsibility. > Any reason why you couldn't have a stable API here. Somewhat higher level than the current functions which would allow you to still do whatever you wanted below this layer ? > > If you to teach your schema management tool to do more than just DDL but > also do things like add new tables to a > replication set then the job of doing this directly with the stored > procedures becomes larger. Slonik often does more than just call the > stored functions. > One step at a time ;) Dave > > > Here are the major steps the ddlScript_capture stored function performs > when submitting DDL to run on all nodes > > * Captures the values of any replicated sequences > * Inserts the ddl into the sl_log_script table > * Executes the DDL submitted > > The ddlScript_complete call will then > * Add a row to sl_log_script indicating the DDL is complete > * Call the updateRelName functions to check for any table renames > * Call repair_log_triggers to fix the kkvv encoding for the trigger > arguments > > > >> >> Dave Cramer >> >> On 19 March 2015 at 05:47, Glyn Astill <glynast...@yahoo.co.uk >> <mailto:glynast...@yahoo.co.uk>> wrote: >> >> > From: Dave Cramer <davecra...@gmail.com >> <mailto:davecra...@gmail.com>> >> >To: slony <slony1-general@lists.slony.info >> <mailto:slony1-general@lists.slony.info>> >> >Sent: Wednesday, 18 March 2015, 13:50 >> >Subject: [Slony1-general] replicating execute script >> > >> > >> > >> >Due to the usage of capital letters in the slony cluster execute >> script fails. >> > >> > >> >I am looking to replicate execute script for DDL changes. From what >> I can see execute script takes a lock out on sl_lock before executing the >> script, and releases it at the end. >> > >> > >> >What else am I missing ? >> > >> >> >> Well it looks like ddlscript_complete calls updateRelname() and >> repair_log_triggers(true), so I guess that's part of it. >> >> >> Wouldn't it be better to try and patch execute script to handle your >> case sensitivity issue? >> >> >> >> >> _______________________________________________ >> Slony1-general mailing list >> Slony1-general@lists.slony.info >> http://lists.slony.info/mailman/listinfo/slony1-general >> >> >
_______________________________________________ Slony1-general mailing list Slony1-general@lists.slony.info http://lists.slony.info/mailman/listinfo/slony1-general