Important: #106532 - Changed database storage format for Scheduler Tasks
See forge#106532
Description
TYPO3's system extension scheduler has stored its tasks to be executed in a PHP-serialized format in the database since its inception.
This has led to many problems, for example, when changing a class property to be fully typed, when a class name changed to use PHP 5 namespaces, or when renaming a class or a class property.
This has now changed: the task object now stores the "tasktype" (typically the
class name) and its options in a "parameters" JSON-encoded value, as well as
the execution details (database field execution_) in separate fields
of the database table
tx_. This way, the task object can
be reconstituted through a properly defined API, avoiding issues in the future.
All existing tasks are compatible with the new internal format. An upgrade
wizard ensures that the previously serialized objects are transferred into the
new format. If this wizard does not disappear after being executed, it means
there are tasks that failed to migrate and may need manual inspection or
recreation. Inspect all tasks in
tx_ where the "tasktype"
column is empty. The old serialized data format is somewhat human-readable (or
can be inspected with PHP deserializers), so recreating a task with its former
configuration options should be possible.
Please note that this upgrade step needs to be performed in the context of TYPO3 v14. Running the wizard in future TYPO3 versions may not succeed due to changes in the task objects.