Important: Four job columns are nullable now
Description
Four columns of
tx_ were declared as
TEXT
with a default value:
company_name text NOT NULL DEFAULT '',
sector text NOT NULL DEFAULT '',
required_degree text NOT NULL DEFAULT '',
contractual_relationship text NOT NULL DEFAULT '',
MySQL cannot store a default value on a
TEXT
column. TYPO3 works
around that from v13 on, by expressing the default in the
DEFAULT syntax MySQL 8.0.13 introduced — so the declarations
are harmless on every core version this release supports. On TYPO3 v12
they were not: the columns ended up
NOT NULL
with no default at
all, and every statement that did not name them was rejected with
Field 'company_. Imports and
data sets were the reachable case; the frontend form persists a full
record, and the backend fills the columns from their
default
in
TCA.
The columns keep their type and lose the default instead:
company_name text DEFAULT NULL,
sector text DEFAULT NULL,
required_degree text DEFAULT NULL,
contractual_relationship text DEFAULT NULL,
The change is carried here as well so that both maintained branches declare the columns identically.
Impact
Records written without naming a column now store
NULL
where they
previously stored an empty string. Existing rows are not changed, so a
column can hold both. The domain model is unaffected — Extbase casts
NULL
to
an empty string for its
string
properties — but code reading the
columns directly should compare with
empty rather than with
''
.
Affected Installations
All installations of this extension. The database schema has to be
updated, either in the maintenance area of the install tool or with
typo3 extension:. The change only relaxes the columns, so no
data is converted and nothing can be lost.