SQL Alter table modify is not supported (to change existent column datatype)

(I apologize if this topic is mentioned in another forum thread)

I know that diff-database (delta sql script) is so limited. I test on oracle 11g database with columns that their datatypes have been changed (many different types of datatypes changes). The generated sql file, or liquibase file, with the diff-database does not present these datatypes modifications in any case.
But I think a diff-database that supports the modification of datatypes can be simply developed (only viewing if the datatype is different, putting the appropiate sql statement, and letting the database driver the responsability to produce a sql exception if there is a syntax fail/error). Could the problem arise from the information that is provided by the driver?

I always work with sql script and so I put the sql syntax. Liquibase presents a modify column refactoring but I think this tag is producing too many controversies…

I think the diff support for data type values is improved in 2.0 since we dropped the modifyColumn change in favor of modifyDataType.  It does also do a better job of using data types from the driver. 

You can get the current RC1 of 2.0 from http://liquibase.org/download.  I’m hoping to have 2.0 final out this week or next.


I cannot use 2.0 because my code does not work in this version (and some other problems):

It works in 1.9.x but in 2.0, liquibase launchs a exception: \ant\build.xml:815: diffDatabaseToChangeLog doesn't support the "baseUrl" attribute

Which is the appropriate ant task syntax to do the diff-db from hibernate configuration file?
Is there a 2.0 manual with the new features/syntaxes?

For 2.0 we changed the base* attributes (like baseUrl) have changed to reference* (like referenceUrl) to make it more obvious what data is for the reference database and which is for the database to change.

I’m still working on an upgrade guide for 1.9-2.0 changes.  That is one of the things holding up the 2.0 final release.


I has been watching the code and I know the reason.
I use persistence files (hibernate files) to be compared with an existant database (installed from persistence files). But the datatype modifications is not supported if one or both databaseSnapshot are referred to hibernate files.

Is there some logical reason Liquibase cannnot introduce the datypes modifications between hibernate files and a database?

I think the diffDatabase are often made by update versions. If you work with hibernate files, you directly use liquibase methods to generate the sql statements to database from hibernate files. In this way, if you want to do a diff, a diff liquibase method would have to be implemented to do the comparation with hibernate files directly.