kitodo / kitodo-production

Kitodo.Production is a workflow management tool for mass digitization and is part of the Kitodo Digital Library Suite.
http://www.kitodo.org/software/kitodoproduction/
GNU General Public License v3.0
64 stars 63 forks source link

Database migration fails partially on macOS (and other hosts with case insensitive filesystem) #6139

Open stweil opened 4 months ago

stweil commented 4 months ago

Describe the bug

The SQL statements in Kitodo-DataManagement/src/main/resources/db/migration/V2_105__Fixes_#3998.sql which were introduced in pull request #4412 don't work on hosts with a filesystem which is case insensitive (macOS, Windows).

An easy workaround is using an intermediate filename:

Replace

ALTER TABLE client_x_listColumn RENAME TO client_x_listcolumn;

by

ALTER TABLE client_x_listColumn RENAME TO renamed_table;
ALTER TABLE renamed_table RENAME TO client_x_listcolumn;

and similarly for all other renames.

To Reproduce Steps to reproduce the behavior:

  1. Run migration on macOS.
  2. Check names of database tables.
  3. See error

Expected behavior Database migration must work on macOS and Windows (and Linux with a case insensitive filesystem), too.

Release All recent releases up to git master.

stweil commented 4 months ago

@matthias-ronge, @solth, should I prepare a PR with the suggested fix for the SQL file? Or do you have a different solution?

stweil commented 4 months ago

If we patch the existing migration script, this will require a flyway:repair for at least some existing installations. Is this acceptable? See related discussion for typo fixes in pull request #6149.

henning-gerhardt commented 4 months ago

My question is: why this is failing on your system? So far as I know this is working on Windows and if I remember me correct this was working on MacOS too.

stweil commented 4 months ago

See https://mariadb.com/kb/en/identifier-case-sensitivity/.