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 literal default value on a
TEXT
column. TYPO3 v13
works around that by expressing the default in the
DEFAULT syntax
MySQL 8.0.13 introduced. TYPO3 v12 does not. There the columns were created
NOT NULL
with no default at all, and every statement that did not name
them was rejected:
Field 'company_name' doesn't have a default value
Imports and data sets are the reachable case. The frontend form and the
backend are not affected: the form persists a full record, and the
backend fills the columns from their
default
in TCA.
The columns keep their type, lose the default and accept
NULL
:
company_name text DEFAULT NULL,
sector text DEFAULT NULL,
required_degree text DEFAULT NULL,
contractual_relationship text DEFAULT NULL,
Impact
Job records can be written on TYPO3 v12 with MySQL without naming these four columns.
Records written that way 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. 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 Admin Tools > Maintenance > Analyze Database
Structure or with
vendor/. The change only
relaxes the columns, so no data is converted and nothing can be lost.