today I tried to migrate one of our mysql databases. In my changelog
there is 1 changeset with precondition columnExists. After all migration
took 40 minutes to complete its work. After I monitored mysqls
processlist it seems that columnExists precondition is executed for
every
table in the current schema.
Processlist displayed for example following info:
SHOW FULL COLUMNS FROM `TABLE_XYZ` FROM `appdb01` LIKE '%'
my condition is like that...
<not>
<columnExists
schemaName="APPDB01"
tableName="BASE__WEB_USERS"
columnName="EMAIL"/>
</not>
For a small database containing a few tables this might not be a
problem, but we have 26.000 tables in our schema, so this is a
serious problem.
While processing the changelog liquibase calls the table list from
the database Before I gave up (after 20 Minutes) threre were 5
messages in the processlist, that liquibase fetched a full table list
SHOW FULL TABLES FROM `appdb01` LIKE '%'
Is there a way to tell liquibase it should use all the given
information to shorten execution time?
Thanks and Regards Rainer