You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During liquibase upgrade from v4.5.0 to v4.6.0, I noticed the string escaping has changed in case of data loaded from .csv file.
For me, this issue would break production changelogs. During my investigation, I have not found any workaround for this problem.
I checked more recent versions too and the behavior permanently changed. (form 4.6.0 to 4.15.0)
Steps To Reproduce
I attached a .zip file with the corresponding redacted changelogs and a docker-compose file that starts the mariadb and phpmyadmin. The .zip file contains a lib folder, a liquibase.jar file and the liquibase binary of versions 4.5.0 and 4.6.0. I downloaded them from liquibase github releases. For easier usage I copied mariadb-java-client-2.7.0.jar from 4.6.0 to 4.5.0.
The docker/logs folder is mounted to the container. From here, you can reach the general.log of the mariadb.
Here are some useful commands:
start and stop docker containers:
docker-compose -f docker/mariadb.yml up -d
docker-compose -f docker/mariadb.yml down
run the changes:
# NOTE: please do not forget to drop the database content between runs
4.5.0-files/liquibase \
update \
--username=admin \
--password=admin \
--url=jdbc:mariadb://localhost:3306/admin \
--changelog-file=master.xml \
--driver=org.mariadb.jdbc.Driver \
--log-level=FINE
4.6.0-files/liquibase \
update \
--username=admin \
--password=admin \
--url=jdbc:mariadb://localhost:3306/admin \
--changelog-file=master.xml \
--driver=org.mariadb.jdbc.Driver \
--log-level=FINE
Actual Behavior
The relevant part of the general.log file
4.5.0
INSERT INTO `admin`.escape_bug(id, string_regex) VALUES(16, 'https?:\\/\\/')
4.6.0
INSERT INTO `admin`.escape_bug(id, string_regex) VALUES(16, 'https?:\\\\\\/\\\\\\/')
Expected/Desired Behavior
From my perspective v4.5.0 is the proper one because I would later update this regex:
INSERT INTO `admin`.escape_bug(id, string_regex) VALUES(16, 'https?:\\/\\/')
Environment
Liquibase Version: 4.6.0
Liquibase Integration & Version: CLI
Liquibase Extension(s) & Version:
Database Vendor & Version: mariadb:10.7.1
Operating System Type & Version: linux
Infrastructure Type/Provider: docker
Description
During liquibase upgrade from v4.5.0 to v4.6.0, I noticed the string escaping has changed in case of data loaded from .csv file.
For me, this issue would break production changelogs. During my investigation, I have not found any workaround for this problem.
I checked more recent versions too and the behavior permanently changed. (form 4.6.0 to 4.15.0)
Steps To Reproduce
I attached a
.zip
file with the corresponding redacted changelogs and a docker-compose file that starts the mariadb and phpmyadmin. The.zip
file contains alib
folder, aliquibase.jar
file and theliquibase
binary of versions 4.5.0 and 4.6.0. I downloaded them from liquibase github releases. For easier usage I copiedmariadb-java-client-2.7.0.jar
from 4.6.0 to 4.5.0.The
docker/logs
folder is mounted to the container. From here, you can reach thegeneral.log
of the mariadb.Here are some useful commands:
Actual Behavior
The relevant part of the
general.log
file4.5.0
4.6.0
Expected/Desired Behavior
From my perspective v4.5.0 is the proper one because I would later update this regex:
Screenshots (if appropriate)
4.5.0
4.6.0
Additional Context
bug-package.zip
The text was updated successfully, but these errors were encountered: