I am using the JHipster Framework and I have created an entity with the sub-generator with a Blob Image Field. In this field I am saving SVG Files. The table declaration looks like this:
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="now()" dbms="mysql"/>
<property name="autoIncrement" value="true"/>
<property name="clobType" value="clob" dbms="h2"/>
<property name="clobType" value="longtext" dbms="mysql"/>
<property name="blobType" value="blob" dbms="h2"/>
<property name="blobType" value="longblob" dbms="mysql"/>
<!--
Added the entity Pattern.
-->
<changeSet id="20171023230151-1" author="jhipster">
<createTable tableName="pattern">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="description" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="pattern_icon" type="${blobType}">
<constraints nullable="true" />
</column>
<column name="pattern_icon_content_type" type="varchar(255)">
<constraints nullable="true" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
<loadData tableName="pattern"
encoding="UTF-8"
separator=";"
file="config/liquibase/pattern.csv">
</loadData>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>
In my test environment I am using H2 as DB. In development I am using MySQL. When I try to run any of the tests which have been created from me or JHIpster I receive a org.h2.jdbc.JdbcSQLException which says, that Hexadecimal string contains non-hex character.
So I think this is a H2 problem, and I dont know how to find a work-around.Is there a way in JHipster to exclude the liquibase check respectively to skip this point in order to make the test cases work? An excerpt from the error message is here:
2017-11-30 22:42:15.504 INFO 17884 --- [ main] irpd.web.rest.ParameterResourceIntTest : Starting ParameterResourceIntTest on Yun with PID 17884 (started by Sebnem in C:\Users\Sebnem\HSR_BA\irpd)
2017-11-30 22:42:15.510 INFO 17884 --- [ main] irpd.web.rest.ParameterResourceIntTest : No active profile set, falling back to default profiles: default
2017-11-30 22:42:23.290 INFO 17884 --- [ main] irpd.config.MetricsConfiguration : Initializing Metrics Log reporting
2017-11-30 22:42:28.671 ERROR 17884 --- [ main] liquibase : classpath:config/liquibase/master.xml: config/liquibase/changelog/20171023230151_added_entity_Pattern.xml::20171023230151-1::jhipster: Change Set config/liquibase/changelog/20171023230151_added_entity_Pattern.xml::20171023230151-1::jhipster failed. Error: Hexadezimal Zahl enthält unerlaubtes Zeichen: "<svg xmlns=""http://www.w3.org/2000/svg"" viewBox=""0 0 71.87 71.87""><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id=""Ebene_2"" data-name=""Ebene 2""><g id=""Ebene_27"" data-name=""Ebene 27""><circle cx=""35.93"" cy=""35.93"" r=""19.02""/><rect class=""cls-1"" x=""0.5"" y=""0.5"" width=""70.87"" height=""70.87"" rx=""14.17"" ry=""14.17""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""12.28"" ry=""3.93"" transform=""matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28"" transform=""translate(-13.15 49.09) rotate(-60)""/><circle class=""cls-3"" cx=""35.93"" cy=""35.93"" r=""1.73""/></g></g></svg>"
Hexadecimal string contains non-hex character: "<svg xmlns=""http://www.w3.org/2000/svg"" viewBox=""0 0 71.87 71.87""><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id=""Ebene_2"" data-name=""Ebene 2""><g id=""Ebene_27"" data-name=""Ebene 27""><circle cx=""35.93"" cy=""35.93"" r=""19.02""/><rect class=""cls-1"" x=""0.5"" y=""0.5"" width=""70.87"" height=""70.87"" rx=""14.17"" ry=""14.17""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""12.28"" ry=""3.93"" transform=""matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28"" transform=""translate(-13.15 49.09) rotate(-60)""/><circle class=""cls-3"" cx=""35.93"" cy=""35.93"" r=""1.73""/></g></g></svg>"; SQL statement:
INSERT INTO PUBLIC.pattern (id, name, description, pattern_icon, pattern_icon_content_type) VALUES ('1', 'Atomic Parameter', 'Atomic Parameter Description', '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71.87 71.87"><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id="Ebene_2" data-name="Ebene 2"><g id="Ebene_27" data-name="Ebene 27"><circle cx="35.93" cy="35.93" r="19.02"/><rect class="cls-1" x="0.5" y="0.5" width="70.87" height="70.87" rx="14.17" ry="14.17"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="12.28" ry="3.93" transform="matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28" transform="translate(-13.15 49.09) rotate(-60)"/><circle class="cls-3" cx="35.93" cy="35.93" r="1.73"/></g></g></svg>', 'image/svg+xml') -- ('1', 'Atomic Parameter', 'Atomic Parameter Description', '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71.87 71.87"><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id="Ebene_2" data-name="Ebene 2"><g id="Ebene_27" data-name="Ebene 27"><circle cx="35.93" cy="35.93" r="19.02"/><rect class="cls-1" x="0.5" y="0.5" width="70.87" height="70.87" rx="14.17" ry="14.17"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="12.28" ry="3.93" transform="matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28" transform="translate(-13.15 49.09) rotate(-60)"/><circle class="cls-3" cx="35.93" cy="35.93" r="1.73"/></g></g></svg>', 'image/svg+xml') [90004-196] [Failed SQL: INSERT INTO PUBLIC.pattern (id, name, description, pattern_icon, pattern_icon_content_type) VALUES ('1', 'Atomic Parameter', 'Atomic Parameter Description', '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71.87 71.87"><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id="Ebene_2" data-name="Ebene 2"><g id="Ebene_27" data-name="Ebene 27"><circle cx="35.93" cy="35.93" r="19.02"/><rect class="cls-1" x="0.5" y="0.5" width="70.87" height="70.87" rx="14.17" ry="14.17"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="12.28" ry="3.93" transform="matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)"/><ellipse class="cls-2" cx="35.93" cy="35.93" rx="3.93" ry="12.28" transform="translate(-13.15 49.09) rotate(-60)"/><circle class="cls-3" cx="35.93" cy="35.93" r="1.73"/></g></g></svg>', 'image/svg+xml']
2017-11-30 22:42:28.685 WARN 17884 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [irpd/config/DatabaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.MigrationFailedException: Migration failed for change set config/liquibase/changelog/20171023230151_added_entity_Pattern.xml::20171023230151-1::jhipster:
Reason: liquibase.exception.DatabaseException: Hexadezimal Zahl enthält unerlaubtes Zeichen: "<svg xmlns=""http://www.w3.org/2000/svg"" viewBox=""0 0 71.87 71.87""><defs><style>.cls-1,.cls-2{fill:none;stroke-miterlimit:10;}.cls-1{stroke:#000;}.cls-2{stroke:#fff;}.cls-3{fill:#fff;}</style></defs><title>Element 14</title><g id=""Ebene_2"" data-name=""Ebene 2""><g id=""Ebene_27"" data-name=""Ebene 27""><circle cx=""35.93"" cy=""35.93"" r=""19.02""/><rect class=""cls-1"" x=""0.5"" y=""0.5"" width=""70.87"" height=""70.87"" rx=""14.17"" ry=""14.17""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""12.28"" ry=""3.93"" transform=""matrix(0.87, -0.5, 0.5, 0.87, -13.15, 22.78)""/><ellipse class=""cls-2"" cx=""35.93"" cy=""35.93"" rx=""3.93"" ry=""12.28"" transform=""translate(-13.15 49.09) rotate(-60)""/><circle class=""cls-3"" cx=""35.93"" cy=""35.93"" r=""1.73""/></g></g></svg>"
Is is somehow possible to exclue this colum when running the JUNIT tests? Whenever I run a Junit Test, it crashed at line 4 "liquibase".
2017-12-01 11:13:11.601 INFO 51092 --- [ main] irpd.web.rest.AccountResourceIntTest : Starting AccountResourceIntTest on Yun with PID 51092 (started by Sebnem in C:\Users\Sebnem\HSR_BA\irpd)
2017-12-01 11:13:11.608 INFO 51092 --- [ main] irpd.web.rest.AccountResourceIntTest : No active profile set, falling back to default profiles: default
2017-12-01 11:13:20.716 INFO 51092 --- [ main] irpd.config.MetricsConfiguration : Initializing Metrics Log reporting
2017-12-01 11:13:27.035 ERROR 51092 --- [ main] liquibase
Any help is much appreciated.