What happened. An Order entity needed a column holding a serialised JSON map.
jmix-create-entity says to use "the project pattern for long text, usually @Lob plus a
matching Liquibase type" but never says what that type is, and the changelog skill's type
table stops at varchar(n).
What I had to do outside the skill. Chose clob myself after checking that the test
profile runs HSQLDB while production runs PostgreSQL, so a PostgreSQL-only type such as
jsonb would have made the single changelog unusable in tests.
Why it matters. The choice is not free: picking a vendor-specific type breaks the test
contour, and the skills are explicit that one changelog serves both. The rule "use only type
macros already present in the project" gives no answer when the project has none.
Suggested fix. Add @Lob String → clob to the type table, plus one line warning that
vendor-specific types (jsonb, json) break a shared changelog when tests run on a
different database.
Found while building a real Jmix 2.8 application (document registry, Vaadin UI, PostgreSQL, deployed behind nginx).
What happened. An
Orderentity needed a column holding a serialised JSON map.jmix-create-entitysays to use "the project pattern for long text, usually@Lobplus amatching Liquibase type" but never says what that type is, and the changelog skill's type
table stops at
varchar(n).What I had to do outside the skill. Chose
clobmyself after checking that the testprofile runs HSQLDB while production runs PostgreSQL, so a PostgreSQL-only type such as
jsonbwould have made the single changelog unusable in tests.Why it matters. The choice is not free: picking a vendor-specific type breaks the test
contour, and the skills are explicit that one changelog serves both. The rule "use only type
macros already present in the project" gives no answer when the project has none.
Suggested fix. Add
@Lob String → clobto the type table, plus one line warning thatvendor-specific types (
jsonb,json) break a shared changelog when tests run on adifferent database.
Found while building a real Jmix 2.8 application (document registry, Vaadin UI, PostgreSQL, deployed behind nginx).