Bug #82628

Install tool and compare DB / EXT:dbal - A cache with identifier "dbal" does not exist

Added by RVVN no-lastname-given about 2 years ago. Updated about 2 years ago.

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

0%

TYPO3 Version:
8
PHP Version:
7.0
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Hi,

I don't know if it's the right place to report this issue because it's related to the former core, and now standalone, extension DBAL, but the github seems inactive since months.

In order to run TYPO3 8 over PostgreSQL, we have to use adodb and dbal extensions because the most of heavy used extensions (news, realurl for instance) are not doctrine-dbal compliant at the moment.

We have several issues and this one occurs when we try to compare DB in Install Tool :

Uncaught TYPO3 Exception
#1203699034: A cache with identifier "dbal" does not exist. (More information)

TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException thrown in file
/xxx/typo3_src-8.7.4/typo3/sysext/core/Classes/Cache/CacheManager.php in line 119.

13 TYPO3\CMS\Core\Cache\CacheManager::getCache("dbal")

/xxx/typo3conf/ext/dbal/Classes/Database/DatabaseConnection.php:
$this->SQLparser = GeneralUtility::makeInstance(\TYPO3\CMS\Dbal\Database\SqlParser::class, $this);
        $this->installerSql = GeneralUtility::makeInstance(\TYPO3\CMS\Install\Service\SqlSchemaMigrationService::class);
        $this->queryCache = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Cache\CacheManager::class)->getCache('dbal');
        // Set internal variables with configuration:
        $this->conf = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal'];

12 TYPO3\CMS\Dbal\Database\DatabaseConnection::__construct()

/xxx/typo3_src-8.7.4/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
03891:         }
03892:         // Create new instance and call constructor with parameters
03893:         $instance = new $finalClassName(...$constructorArguments);
03894:         // Register new singleton instance
03895:         if ($instance instanceof SingletonInterface) {

11 TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\CMS\Core\Database\DatabaseConnection")

/xxx/typo3_src-8.7.4/typo3/sysext/core/Classes/Core/Bootstrap.php:
00770:     {
00771:         /** @var $databaseConnection \TYPO3\CMS\Core\Database\DatabaseConnection */
00772:         $databaseConnection = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Database\DatabaseConnection::class);
00773:         $databaseConnection->setDatabaseName(
00774:             $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['dbname'] ?? ''

10 TYPO3\CMS\Core\Core\Bootstrap::initializeTypo3DbGlobal()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Controller/Action/AbstractAction.php:
00195:             ->defineLoggingAndExceptionConstants()
00196:             ->unsetReservedGlobalVariables()
00197:             ->initializeTypo3DbGlobal()
00198:             ->loadBaseTca(false)
00199:             ->loadExtTables(false);

9 TYPO3\CMS\Install\Controller\Action\AbstractAction::loadExtLocalconfDatabaseAndExtTables()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Controller/Action/Tool/ImportantActions.php:
00047:             || isset($this->postValues['set']['databaseAnalyzerAnalyze'])
00048:         ) {
00049:             $this->loadExtLocalconfDatabaseAndExtTables();
00050:         }
00051:         if (isset($this->postValues['set']['databaseAnalyzerExecute'])) {

8 TYPO3\CMS\Install\Controller\Action\Tool\ImportantActions::executeAction()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Controller/Action/AbstractAction.php:
00066:     {
00067:         $this->initializeHandle();
00068:         return $this->executeAction();
00069:     }
00070: 

7 TYPO3\CMS\Install\Controller\Action\AbstractAction::handle()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Controller/ToolController.php:
00184:         $toolAction->setPostValues($this->getPostValues());
00185:         $toolAction->setLastError($this->getLastError());
00186:         $this->output($toolAction->handle());
00187:     }
00188: }

6 TYPO3\CMS\Install\Controller\ToolController::dispatchAuthenticationActions()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Controller/ToolController.php:
00060:         $this->outputLoginFormIfNotAuthorized();
00061:         $this->registerExtensionConfigurationErrorHandler();
00062:         $this->dispatchAuthenticationActions();
00063:     }
00064: 

5 TYPO3\CMS\Install\Controller\ToolController::execute()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Http/RequestHandler.php:
00061:                 $controllerClassName = \TYPO3\CMS\Install\Controller\StepController::class;
00062:         }
00063:         GeneralUtility::makeInstance($controllerClassName)->execute();
00064:     }
00065: 

4 TYPO3\CMS\Install\Http\RequestHandler::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)

/xxx/typo3_src-8.7.4/typo3/sysext/core/Classes/Core/Bootstrap.php:
00308: 
00309:         // Execute the command which returns a Response object or NULL
00310:         $this->response = $requestHandler->handleRequest($request);
00311:         return $this;
00312:     }

3 TYPO3\CMS\Core\Core\Bootstrap::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)

/xxx/typo3_src-8.7.4/typo3/sysext/install/Classes/Http/Application.php:
00073:     public function run(callable $execute = null)
00074:     {
00075:         $this->bootstrap->handleRequest(\TYPO3\CMS\Core\Http\ServerRequestFactory::fromGlobals());
00076: 
00077:         if ($execute !== null) {

2 TYPO3\CMS\Install\Http\Application::run()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Start/Install.php:
00101: call_user_func(function () {
00102:     $classLoader = require __DIR__ . '/../../../../vendor/autoload.php';
00103:     (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();
00104: });

1 {closure}()

/xxx/typo3_src-8.7.4/typo3/sysext/install/Start/Install.php:
00102:     $classLoader = require __DIR__ . '/../../../../vendor/autoload.php';
00103:     (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();
00104: });

TYPO3\CMS\Dbal\Database\DatabaseConnection::__construct() is called at some other places in the backend and in these cases the cache contains a "dbal" identifier.

History

#1 Updated by Georg Ringer about 2 years ago

I would be more in favor of fixing issues e.g. in news instead of using dbal which will also not get any more effors.

#2 Updated by RVVN no-lastname-given about 2 years ago

Yes, me too, and Benni encouraged us to do so.

As asked here (https://github.com/georgringer/news/issues/355), do you have any plans to replace custom queries in News extension with doctrine-dbal soon ? Or do you prefer to maintain some compatibility with TYPO3 v7 until v9 is out ?

#3 Updated by Wouter Wolters about 2 years ago

  • Status changed from New to Closed

Please get directly in contact with Georg Ringer on Slack, Github or Twitter for your question.

I'll close this ticket as won't be fixed.

Also available in: Atom PDF