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:[email protected]]
> Sent: Tuesday, June 02, 2009 10:28 AM
> To: [email protected]
> 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:[email protected]]
>> Sent: Tuesday, June 02, 2009 9:25 AM
>> To: [email protected]
>> 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:[email protected]]
>>> Sent: Monday, June 01, 2009 7:30 AM
>>> To: [email protected]
>>> 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
>>>> [email protected]
>>>> 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
>>> [email protected]
>>> 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
>>> [email protected]
>>> 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
>> [email protected]
>> 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
>> [email protected]
>> 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
> [email protected]
> 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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/liquibase-user

Reply via email to