Project

General

Profile

Actions

Bug #89438

closed

"Upgrade Wizard" - "Database Analyzer" - Loop

Added by Sven Wappler about 5 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Install Tool
Target version:
-
Start date:
2019-10-17
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
9
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Currently, the Upgrade Wizard is not compatible with the Database Analyzer. The reason for this is the \TYPO3\CMS\Install\Updates\ExtensionManagerTables Task. It checks all tables with the SchemaMigrator and requires a generated database schema out of the TCA model.

$defaultTcaSchema = GeneralUtility::makeInstance(DefaultTcaSchema::class);
$tables = $defaultTcaSchema->enrich($tables);

Many extension authors do not use unsigned in their sql files for int fields. This leads to a very large number of fields being changed by ExtensionManagerTables, although it should only change 2 tables.
Using unsigned int field seems to be the new standard.

If you execute the Database Analyzer after this task, these fields are displayed incorrectly and it is suggested to restore them to their original non-unsigned state. This is because the Database Analyzer uses the sql files of the extensions as a basis before comparing them with the SchemaMigrator. An "enrich" is then no longer necessary.

Possible solution:
- Dissuade the ExtensionManagerTables Task from checking other tables. Because it should not be responsible for other modifications.

Then the system can regain 100% integrity.


Files

loop.png (209 KB) loop.png Update Loop Sven Wappler, 2019-10-17 13:22

Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #91665: Upgrade wizard "ExtensionManagerTables" should not declare itself neccesary in composer and/or offline modeClosed2020-06-17

Actions
Related to TYPO3 Core - Feature #92457: Simplify TER connectionClosedBenni Mack2020-10-01

Actions
Actions #1

Updated by Christian Eßl about 5 years ago

I noticed the same problem here in TYPO3 9.5.11.

ExtensionManagerTables::updateNecessary() reads in all update statements (event those that are not related to the extension manager). If at least one update statement is present, updateNecessary() will always return TRUE.

In ExtensionManagerTables::getUpdateStatements(), first $emTableStatements will only contain the statements for the extension manager tables. Then these statements are given to the SchemaMigrationService:

$updateSuggestions = $schemaMigrationService->getUpdateSuggestions($emTableStatements);

But appararently the SchemaMigrationService always returns the update suggestions for all tables, not only for those statements that were given as a parameter... So this looks like a bug in the SchemaMigrationService to me.

Actions #2

Updated by Georg Ringer over 4 years ago

  • Related to Bug #91665: Upgrade wizard "ExtensionManagerTables" should not declare itself neccesary in composer and/or offline mode added
Actions #3

Updated by Benni Mack about 2 years ago

  • Status changed from New to Needs Feedback

FYI: We've dropped this update wizard because we've reworked the Extension Manager Repository API in v11+. Unfortunately, we were not able to backport this to v10 as it is a breaking change...

OK for you to close this ticket?

https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/11.0/Feature-92457-ImprovedExtensionRepositoryAPI.html

Actions #4

Updated by Benni Mack about 2 years ago

Actions #5

Updated by Riccardo De Contardi almost 2 years ago

  • Status changed from Needs Feedback to Closed

No feedback since more than 90 days and should be solved on v.11+ => closing this issue.

If you think that this is the wrong decision or experience the issue again and have more information about how to reproduce this issue on recent TYPO3 versions, please reopen it or open a new issue with a reference to this one.

Thank you and best regards

Actions

Also available in: Atom PDF