GenerateChangeLog - Sybase - Ignores IDENTITY and Column defaults

I’m a new liquibase user and using it against a Sybase IQ database. IQ supports Sybase ASE DDL for most part and so I had extended SybaseDatabase class to define SystemTablesAndViews,  isSybaseProductName() and getDefaultDriver(). The generateChangeLog both ant and command line versions generates all  objects but seems to ignore extracting IDENTITY and DEFAULT value details of the columns. Are there any other methods I need to override or define on my databaseClass if I want the IDENTITY and column defaults to be picked up? Or is this a known issue with SybaseDatabase support itself?

Specifically I have a table

CREATE TABLE MyTask  (
taskId        integer IDENTITY NOT NULL,
taskName    char(64) NULL,
taskStatus    char(8) NULL,
createDate      timestamp NOT NULL DEFAULT timestamp,
PRIMARY KEY(taskId)
)
GO

output of GenerateChangeLog:

   
       
           
               
           
           
           
           
               
           
       
   

No autoincrement or defaultValue specifications are extracted into the changelog schema.

Thanks,
-Prasad

Are you using liquibase 1.9 or 2.0?

Nathan

LiquiBase_2.0_RC6.

The utility I’m building is to re-create ‘production’ schema into the test environments for our periodic regression testing purposes. And for this it is important that the generated schema be very faithful to the one in prod.

Thanks
-Prasad

The main class used for creating the snapshot is an implementation of DatabaseSnapshotGenerator.  Sybase uses the default StandardJdbcDatabaseSnapshotGenerator, so you may need to create a custom subclass and override the isColumnAutoIncrement method with custom logic.

Nathan