.. index:: ! Upgrade check .. _upgrade-check: ============= Upgrade check ============= An upgrade of the academic extensions does not tell an installation what it broke. A project override of a Fluid template the extension no longer ships simply stops taking part - Fluid renders the extension's own file and says nothing. A TypoScript record that includes a static template folder that no longer holds TypoScript delivers nothing, and says nothing. A page TSconfig import of a file that was renamed is skipped, and says nothing. The configuration stays in the database, looks maintained and does nothing. This extension ships the console command :bash:`academic:upgrade:check` for exactly that. Run it before an upgrade of the academic extensions to see what the project carries, and after one to see what the upgrade made dead. It runs two groups of checks: .. list-table:: :header-rows: 1 * - Group - Reads - Runs * - :ref:`Configuration ` - The TypoScript records, the page TSconfig, the site configurations and the XCLASS registry of the installation. With :php:`EXT:academic_persons` installed, also its settings and the TCA of its tables. - Always. It takes no argument. * - :ref:`Template overrides ` - The Fluid files below the override folders of one extension. - When an extension key is named. .. _upgrade-check-usage: Running it ========== Without an argument the command checks the configuration of the installation: .. code-block:: bash vendor/bin/typo3 academic:upgrade:check .. code-block:: text Configuration ! static-template sys_template:1 The TypoScript record "Main" on page 1 includes the static template "EXT:academic_persons/Configuration/TypoScript/AcademicPersonsDefault", which holds no TypoScript in the installed version: TYPO3 skips it without a message. Select the static template of the installed version instead, or remove the value. 1 problem and 0 notices in the stored configuration. Naming an extension key adds the template override group for that extension: .. code-block:: bash vendor/bin/typo3 academic:upgrade:check academic_persons_edit \ --override-path=EXT:my_site/Resources/Private/Extensions/AcademicPersonsEdit/ .. code-block:: text Template overrides EXT:my_site/Resources/Private/Extensions/AcademicPersonsEdit/ compared with EXT:academic_persons_edit/Resources/Private/ x missing-upstream Templates/Profile/Show.html = identical Partials/Profile/Image.html ! case-mismatch Pages/Academicprogram.html -> Pages/AcademicProgram.html 2 problems and 1 notice in 1 override folder. The first argument is the extension key of the academic extension whose templates the folder overrides. When it is given, at least one :bash:`--override-path` or a :bash:`--site` has to be given with it. The configuration group runs in either case, so a pipeline that checks one extension's overrides cannot miss the configuration findings. An override folder is named as an :bash:`EXT:` path, or as an absolute path **inside the project root**: TYPO3 refuses any other absolute path, so a second checkout next to the project cannot be checked - the command says so rather than claiming the folder does not exist. .. _upgrade-check-configuration: What it reports about the configuration ======================================= The configuration group reads the stored configuration of the installation and reports what no longer reaches the academic extensions, or what reaches them twice. Every finding names where to look, so it can be found right away: the TypoScript record, page, site or class that stores the configuration, or the database column a setting reaches, as ``table.column``. .. list-table:: :header-rows: 1 * - Finding - Meaning - What to do * - :bash:`static-template` - A TypoScript record includes a static template of an academic extension that the installation does not have any more, or whose folder holds no TypoScript in the installed version. TYPO3 skips the value without a message. - Open the record, select the static template of the installed version in :guilabel:`Include TypoScript sets`, and remove the dead value. * - :bash:`tsconfig-import` - A page, or the :file:`page.tsconfig` of a site, imports or selects a page TSconfig file of an academic extension that is not there. Measured against the last released 2.x, :bash:`2.3.4`: the page TSconfig folders were unified to :file:`Configuration/TSconfig/` - they were spelled :file:`TsConfig`, :file:`TSConfig` and :file:`TSconfig` depending on the extension - and the set folders :file:`Sets/AcademicPersonsDefault/` and :file:`Sets/AcademicBaseCTypeGroup/` became :file:`Sets/Default/` and :file:`Sets/CTypeGroup/`. Both are part of the 2.4 restructuring that 3.0 inherited. - Correct the path, or remove the import when the extension delivers the same TSconfig by itself today. * - :bash:`tsconfig-syntax` - A page TSconfig includes an academic file with the :typoscript:`