ichhabrecht / core_upgrader Goto Github PK
View Code? Open in Web Editor NEWRun core upgrade wizards for multiple TYPO3 versions at once
License: GNU General Public License v2.0
Run core upgrade wizards for multiple TYPO3 versions at once
License: GNU General Public License v2.0
By running the coreupgrader:upgrade
multiple times, TYPO3 executes the upgrade wizards despite of sys_registry
entries for that script, even without --force flag in command.
Following happens on second run:
An exception occurred while executing 'SELECT COUNT(`hash`) FROM `sys_refindex` WHERE (`ref_table` = ?) AND (`softref_key` = ?) AND (`deleted` = ?)' with params ["_FILE", "typolink_tag", 0]:
Unknown column 'deleted' in 'where clause'
Expected behavior:
Take care of sys_registry
entries and do not execute the wizard if it is marked as executed and the --force flag is not set.
Versions:
Some Wizards throw errors with PHP 8
nothing more to say :)
TYPO3 version: 10.4.9 (composer)
I'm getting the following error when trying to create a new scheduler task:
TypeError
strpos() expects parameter 1 to be string, null given
in /var/www/html/vendor/helhum/typo3-console/Classes/Console/Mvc/Cli/CommandDispatcher.php line 95
It seems that your UpgradeCommand
needs a cli environment to be loaded correctly as it calls CommandDispatcher::createFromCommandRun()
in its constructor, leading to the error above in non-cli.
To clarify, I did not try to add your command as a scheduler task. The error happens once you open the form to add new tasks. Maybe just exclude it from scheduler?
TYPO3 11.5 does not have the $GLOBALS['TCA']['pages_language_overlay']
.
Moreover TYPO3 11.5 has a method, which unsets $GLOBALS['TCA']['pages_language_overlay']
if it is defined See: .
/**
* Removes $TCA['pages_language_overlay'] if defined.
*
* @param array $tca
* @return array the modified TCA structure
*/
protected function migratePagesLanguageOverlayRemoval(array $tca)
{
if (isset($tca['pages_language_overlay'])) {
$this->messages[] = 'The TCA table \'pages_language_overlay\' is'
. ' not used anymore and has been removed automatically in'
. ' order to avoid negative side-effects.';
unset($tca['pages_language_overlay']);
}
return $tca;
}
I would propose do add this behavior to the README.md and to add the possibility to provide the $GLOBALS['TCA']['pages_language_overlay']
from old project.
Currently we resolved that issue by patch:
diff --git a/Classes/Updates/v95/MigratePagesLanguageOverlayUpdate.php b/Classes/Updates/v95/MigratePagesLanguageOverlayUpdate.php
--- a/Classes/Updates/v95/MigratePagesLanguageOverlayUpdate.php (revision 5f01904e3407f457943f1d9e9fef2182c48899c1)
+++ b/Classes/Updates/v95/MigratePagesLanguageOverlayUpdate.php (date 1679660582484)
@@ -104,6 +104,7 @@
*/
public function executeUpdate(): bool
{
+ require GeneralUtility::getFileAbsFileName('EXT:our-sitepackage/Configuration/TCA/Overrides/pages_language_overlay.php');
// Warn for TCA relation configurations which are not migrated.
if (isset($GLOBALS['TCA']['pages_language_overlay']['columns'])
&& is_array($GLOBALS['TCA']['pages_language_overlay']['columns'])
@@ -123,6 +124,7 @@
$this->mergePagesLanguageOverlayIntoPages();
$this->updateInlineRelations();
$this->updateSysHistoryRelations();
+ unset($GLOBALS['TCA']['pages_language_overlay']);
return true;
}
with contents on EXT:our-sitepackage/Configuration/TCA/Overrides/pages_language_overlay.php
from our TYPO3 8.7 instance, which must be upgraded.
The extraction of $GLOBALS['TCA']['pages_language_overlay']
can be done on TYPO3 8.7 instance with following snipped in some of available commands:
$tcaForPages_language_overlay = var_export(
$GLOBALS['TCA']['pages_language_overlay'],
true
);
file_put_contents('./TCA-for-pages_language_overlay.php', $tcaForPages_language_overlay);
return 0;
After the TYPO3 11.5+ is live, the files can be removed.
Depends on: #6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.