A new topic, 'Looking for Feedback: Change implementations and Extensions', has 
been made on a board you are watching.

You can see it at
http://liquibase.org/forum/index.php?topic=104.new#new

The text of the topic is shown below:

I am thinking about how we select the Change implementation to run from your 
changelog files when you have liquibase extensions installed.  Currently, if 
you have something like this:

Code:
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog";
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog 
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext 
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd";>

    <changeSet id="1" author="nvoxland">
        <createTable tableName="asdf">
            <column name="id" type="int"/>
        </createTable>
    </changeSet>

    <changeSet id="2" author="nvoxland">
        <ext:sample2/>
    </changeSet>

</databaseChangeLog>


LiquiBase will find the "createTable" change provided by liquibase, and will 
look for a "sample2" change in the classpath as well. 

But what if you want to modify the behavior of createTable?  Currently, if you 
create an extension with a "createTable" change liquibase will use the one that 
returns the one where the getPriority() method returns the highest value.  The 
idea is that this setup will allow you to drop in change extensions that modify 
the behavior of your changelog without needing to modify the changelog at all.  
The example I had in my head was a drop-in replacement for <insert> which will 
call "set identity insert on/off" before/after inserting for sqlserver.

Any opinions on if that is a good approach?  The other option that I have been 
thinking about is something more like what you see for custom components in 
Flex or WPF where you include the package name in as the namespace for tags.  
That way you need to change your changelog if you want a different 
implementation of a core change tag, but you also know exactly what is going to 
run.  It is also too xml-ish for me, as I want to better support non-xml 
changelog definitions, though how you would work around the issue would need to 
be determined by the creators of alternate formats.

Nathan

Unsubscribe to new topics from this board by clicking here: 
http://liquibase.org/forum/index.php?action=notifyboard;board=1.0

Regards,
The LiquiBase Community Forum Team.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Liquibase-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/liquibase-user

Reply via email to