Project

General

Profile

Actions

Bug #82628

closed

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

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

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

0%

Estimated time:
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.

Actions

Also available in: Atom PDF