Have a look through the history of liquibase-dev, I put up a couple of posts 
about setting your environment up and where to find the code etc. Don't know if 
it ever got moved into the Wiki after that was added but it may prove useful.

I also put a code formatter for settings in eclipse that closely resemble the 
code bases defaults (which are not quite Sun spec) which you'll want as well to 
stop eclipse from messing with the imports etc and adding unnecessary changes.

Paul K


----- Original Message ----
From: Marc Logemann <l...@logemann.org>
To: liquibase-user@lists.sourceforge.net
Sent: Tuesday, 2 June, 2009 16:37:40
Subject: Re: [Liquibase-user] duplicate Key on Liq Table creation

Thats what i thought about it too. I am just on the way creaing a  
login in JIRA and checking out the 1.9 branch. Hopefully the build is  
simple so that i can get up to speed quickly.
Need to get some other things done today ;-)

---
regards
Marc Logemann
http://www.logemann.org
http://www.logentis.de




Am 02.06.2009 um 17:32 schrieb Voxland, Nathan:

> That's right.  We truncate it for DB2 because there is a limit of 17  
> on
> PK names as I understand.  We truncate them so that you don't get
> errors.
>
> What we should do is change the PK names for our tables to be smaller.
> PK_DBCHLOG and PK_DBCHLOGLOCK would probably be a better option.
>
> Nathan
>
> -----Original Message-----
> From: Marc Logemann [mailto:l...@logemann.org]
> Sent: Tuesday, June 02, 2009 10:28 AM
> To: liquibase-user@lists.sourceforge.net
> Subject: Re: [Liquibase-user] duplicate Key on Liq Table creation
>
> Not DB2 is truncating it. You are doing it in:
>
>
> DB2Database.class
>
>
>     public String generatePrimaryKeyName(String tableName) {
>         String pkName = super.generatePrimaryKeyName(tableName);
>         if (pkName.length() > 18) {
>             pkName = pkName.substring(0, 17);
>         }
>         return pkName;
>     }
>
>
> This way we have two times the same name, because
> "PK_DATABASECHANGELOGLOCK" is truncated down to "PK_DATABASECHANGE",
> same goes for "PK_DATABASECHANGELOG", which also will be truncated to
> "PK_DATABASECHANGE".
>
> I wonder if this will work on DB2 UDB for Linux/Windows.
>
> ---
> regards
> Marc Logemann
> http://www.logemann.org
> http://www.logentis.de
>
>
>
>
> Am 02.06.2009 um 17:24 schrieb Voxland, Nathan:
>
>> Other databases have that problem too. I think the issue is actually
>> that our PK names are too long and db2 is truncating it down to a
>> non-unique version.  Normally, I think it is PK_DATABASECHANGELOG and
>> PK_DATABASECHANGELOGLOCK
>>
>> Nathan
>>
>> -----Original Message-----
>> From: Marc Logemann [mailto:l...@logemann.org]
>> Sent: Tuesday, June 02, 2009 9:25 AM
>> To: liquibase-user@lists.sourceforge.net
>> Subject: Re: [Liquibase-user] duplicate Key on Liq Table creation
>>
>> Thanks for the ramp-up infos. It would be very nice if you could name
>> the key constraints differntly. On iSeries there will be an error  
>> when
>> you create PK_DATABASECHANGE more than one time. On other DBs, the
>> name is ascociated with the table where the key is for, but not on
>> iSeries. There we have a common pool of names for all tables!
>>
>> ---
>> regards
>> Marc Logemann
>> http://www.logemann.org
>> http://www.logentis.de
>>
>>
>>
>>
>> Am 01.06.2009 um 22:40 schrieb Voxland, Nathan:
>>
>>> If you are interested in adding support, that would be great.  The
>>> easiest way is to register on liquibase.jira.com, check out the code
>>> using your username/password, and commit what you need to change. We
>>> are
>>> experimenting with
>>>
>>> The state of the code right now, is that there are two major
>>> branches:
>>> /branches/1_9 and /trunk.  Trunk is in the process of a major
>>> refactoring which will hopefully be done in about a month.  While
>>> that
>>> would be the best place to add it, it may not be in the state to  
>>> jump
>>> into adding new dialect support.
>>>
>>> Your best bet will probably be to check out /branches/1_9 and add it
>>> there.  We can always merge the changes into trunk later on.  You  
>>> can
>>> take a look at any of the Database implementations (DB2Database may
>>> be a
>>> good starting point).  There is an AbstractSampleChangeLogRunnerTest
>>> class you can extend as well to provide a good automated test of  
>>> your
>>> new dialect.  See DB2SampleChangeLogRunnerTest for an example.
>>>
>>> Let me know if you have any questions
>>>
>>> Nathan
>>>
>>> -----Original Message-----
>>> From: Marc Logemann [mailto:l...@logemann.org]
>>> Sent: Monday, June 01, 2009 7:30 AM
>>> To: liquibase-user@lists.sourceforge.net
>>> Subject: Re: [Liquibase-user] duplicate Key on Liq Table creation
>>>
>>> Hi,
>>>
>>> ok, replying to myself after some hours of investigation:
>>>
>>> 1) we need to define a new DB dialiect in Liquibase which is called
>>> "DB2 for iSeries". The DB2 on this platform, while mostly SQL level
>>> compliant has some quirks when it comes to MetaData handling. Its a
>>> different driver also which is used on this platform. I could start
>>> cloning the original DB2 and make some changes. With current  
>>> version,
>>> Liquibase handles it like a normal DB2 DB because the proprietary
>>> product name (defined in driver) starts also with DB2 (DB2 UDB for
>>> iSeries).
>>>
>>> 2) my problem mentioned is there because of the call in
>>> AbstractDatabase.doesChangeLogLockTableExist()
>>>
>>> rs =
>>> connection
>>> .getMetaData
>>> ().getTables 
>>> (convertRequestedSchemaToCatalog(getDefaultSchemaName()),
>>> convertRequestedSchemaToSchema(getDefaultSchemaName()),
>>> getDatabaseChangeLogLockTableName(), new String[]{"TABLE"});
>>>
>>> just doesnt work. On DB2 for ISeries its a bad idea to supply "null"
>>> as schema name. It uses some user profile defaults to determine the
>>> default schema instead of just looking at some very prominent JDBC
>>> url
>>> parameters for the jt400 driver.
>>>
>>> The mother of all my problems is, that every call to getTables()  
>>> just
>>> doesnt work or better, results in a result-set without any rows. So
>>> Liquibase thinks there are no tables. In my case he thinks that its
>>> DBCHANGELOG tables are not there, but they are.
>>>
>>> So as long as DB2 for iSeries is different in some ways (and to my
>>> knowledge, this will be the case for the time being), you have to
>>> handle it differently. This also applies for nearly ALL SQL clients
>>> available. I am using DBVisualizer which is really good but it also
>>> fails with some DB2 for iSeries thingies because of the non-existant
>>> DB2 abstraction for this platform.
>>>
>>> So i am willing to help out there and hope patches are appreciated.
>>>
>>> ---
>>> regards
>>> Marc Logemann
>>> http://www.logemann.org
>>> http://www.logentis.de
>>>
>>>
>>>
>>>
>>> Am 30.05.2009 um 00:41 schrieb Marc Logemann:
>>>
>>>> Hi,
>>>>
>>>> i am trying to use liquibase to bootstrap a complete DB schema,
>>>> thus i
>>>> dont have any tables. Only the schema. Normally Liquibase creates
>>>> its
>>>> two management tables and then runs the changeset. This works with
>>>> MySQL but with DB2 for iSeries, i am getting the following stack.  
>>>> It
>>>> seems Liquibase use a Constraint names two times. Lquibase wants to
>>>> create "PK_DATABASECHANGE" two times.
>>>>
>>>> java.sql.SQLException: [SQL0601] PK_DATABASECHANGE der Art * in
>>>> NETVERSYS2 bereits vorhanden.
>>>>   at
>>>> com.ibm.as400.access.JDError.throwSQLException(JDError.java:650)
>>>>   at
>>>> com.ibm.as400.access.JDError.throwSQLException(JDError.java:621)
>>>>   at
>>>> com
>>>> .ibm
>>>> .as400
>>>> .access.AS400JDBCStatement.commonPrepare(AS400JDBCStatement.java:
>>>> 1378)
>>>>   at
>>>> com
>>>> .ibm
>>>> .as400.access.AS400JDBCStatement.execute(AS400JDBCStatement.java:
>>>> 1729)
>>>>   at
>>>> org
>>>> .apache
>>>> .commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:
>>>> 264)
>>>>   at liquibase.database.template.JdbcTemplate
>>>> $1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:78)
>>>>   at
>>>> liquibase.database.template.JdbcTemplate.execute(JdbcTemplate.java:
>>>> 48)
>>>>   at
>>>> liquibase.database.template.JdbcTemplate.execute(JdbcTemplate.java:
>>>> 86)
>>>>   at
>>>> liquibase
>>>> .database
>>>> .AbstractDatabase
>>>> .checkDatabaseChangeLogLockTable(AbstractDatabase.java:712)
>>>>   at liquibase.lock.LockHandler.acquireLock(LockHandler.java:40)
>>>>   at liquibase.lock.LockHandler.waitForLock(LockHandler.java:150)
>>>>   at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:518)
>>>>
>>>> The SQL message is in german, it translates to:
>>>>
>>>> java.sql.SQLException: [SQL0601] PK_DATABASECHANGE of Type * in
>>>> NETVERSYS2 already existant.
>>>>
>>>> And in fact it already exists because Liquibase already created its
>>>> first (the lock table) entity. It seems it wants to create the
>>>> second
>>>> with the same constraint name. Can this be?
>>>>
>>>> ---
>>>> regards
>>>> Marc Logemann
>>>> http://www.logemann.org
>>>> http://www.logentis.de
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
> ------------------------------------------------------------------------
>>> ------
>>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC.  
>>>> CaT
>>>> is a gathering of tech-side developers & brand creativity
>>>> professionals. Meet
>>>> the minds behind Google Creative Lab, Visual Complexity,
>>>> Processing, &
>>>> iPhoneDevCamp as they present alongside digital heavyweights like
>>>> Barbarian
>>>> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
>>>> _______________________________________________
>>>> Liquibase-user mailing list
>>>> Liquibase-user@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>>>
>>>
>>>
>>
> ------------------------------------------------------------------------
>>> ------
>>> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
>>> is a gathering of tech-side developers & brand creativity
>>> professionals.
>>> Meet
>>> the minds behind Google Creative Lab, Visual Complexity,
>>> Processing, &
>>> iPhoneDevCamp as they present alongside digital heavyweights like
>>> Barbarian
>>> Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com
>>> _______________________________________________
>>> Liquibase-user mailing list
>>> Liquibase-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>>>
>>>
>>
> ------------------------------------------------------------------------
>> ------
>>> OpenSolaris 2009.06 is a cutting edge operating system for
>>> enterprises
>>> looking to deploy the next generation of Solaris that includes the
>>> latest
>>> innovations from Sun and the OpenSource community. Download a copy
>>> and
>>> enjoy capabilities such as Networking, Storage and Virtualization.
>>> Go to: http://p.sf.net/sfu/opensolaris-get
>>> _______________________________________________
>>> Liquibase-user mailing list
>>> Liquibase-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>>
>>
>>
> ------------------------------------------------------------------------
>> ------
>> OpenSolaris 2009.06 is a cutting edge operating system for  
>> enterprises
>> looking to deploy the next generation of Solaris that includes the
>> latest
>> innovations from Sun and the OpenSource community. Download a copy  
>> and
>> enjoy capabilities such as Networking, Storage and Virtualization.
>> Go to: http://p.sf.net/sfu/opensolaris-get
>> _______________________________________________
>> Liquibase-user mailing list
>> Liquibase-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>>
>>
> ------------------------------------------------------------------------
> ------
>> OpenSolaris 2009.06 is a cutting edge operating system for  
>> enterprises
>> looking to deploy the next generation of Solaris that includes the
>> latest
>> innovations from Sun and the OpenSource community. Download a copy  
>> and
>> enjoy capabilities such as Networking, Storage and Virtualization.
>> Go to: http://p.sf.net/sfu/opensolaris-get
>> _______________________________________________
>> Liquibase-user mailing list
>> Liquibase-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>
>
> ------------------------------------------------------------------------
> ------
> OpenSolaris 2009.06 is a cutting edge operating system for enterprises
> looking to deploy the next generation of Solaris that includes the
> latest
> innovations from Sun and the OpenSource community. Download a copy and
> enjoy capabilities such as Networking, Storage and Virtualization.
> Go to: http://p.sf.net/sfu/opensolaris-get
> _______________________________________________
> Liquibase-user mailing list
> Liquibase-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/liquibase-user
>
> ------------------------------------------------------------------------------
> OpenSolaris 2009.06 is a cutting edge operating system for enterprises
> looking to deploy the next generation of Solaris that includes the  
> latest
> innovations from Sun and the OpenSource community. Download a copy and
> enjoy capabilities such as Networking, Storage and Virtualization.
> Go to: http://p.sf.net/sfu/opensolaris-get
> _______________________________________________
> Liquibase-user mailing list
> Liquibase-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/liquibase-user


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Liquibase-user mailing list
Liquibase-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/liquibase-user



      

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Liquibase-user mailing list
Liquibase-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/liquibase-user

Reply via email to