Actions
Bug #87008
closedDoctrine/DBAL exception in Extension Manager when extension is installed - PostgreSQL/PostGIS database
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Extension Manager
Target version:
-
Start date:
2018-11-26
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
8
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:
Description
I am using TYPO3 8.7 on a PostgreSQL/PostGIS database and having a geometry column on a table non-registered in TCA. When I try to install any extension, the following exception is thrown:
Uncaught TYPO3 Exception Unknown database type geometry requested, Doctrine\DBAL\Platforms\PostgreSQL92Platform may not support it. Doctrine\DBAL\DBALException thrown in file /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php in line 423. 28 Doctrine\DBAL\Platforms\AbstractPlatform::getDoctrineTypeMapping("geometry") /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php: 00347: } 00348: 00349: $type = $this->_platform->getDoctrineTypeMapping($dbType); 00350: $type = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type); 00351: $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type); 27 Doctrine\DBAL\Schema\PostgreSqlSchemaManager::_getPortableTableColumnDefinition(array) /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php: 00818: 00819: if ( ! $defaultPrevented) { 00820: $column = $this->_getPortableTableColumnDefinition($tableColumn); 00821: } 00822: 26 Doctrine\DBAL\Schema\AbstractSchemaManager::_getPortableTableColumnList("tx_myext_domain_model_geotable", "mydatabase", array) /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php: 00173: $tableColumns = $this->_conn->fetchAll($sql); 00174: 00175: return $this->_getPortableTableColumnList($table, $database, $tableColumns); 00176: } 00177: 25 Doctrine\DBAL\Schema\AbstractSchemaManager::listTableColumns("tx_myext_domain_model_geotable") /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php: 00279: public function listTableDetails($tableName) 00280: { 00281: $columns = $this->listTableColumns($tableName); 00282: $foreignKeys = array(); 00283: if ($this->_platform->supportsForeignKeyConstraints()) { 24 Doctrine\DBAL\Schema\AbstractSchemaManager::listTableDetails("tx_myext_domain_model_geotable") /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php: 00266: $tables = array(); 00267: foreach ($tableNames as $tableName) { 00268: $tables[] = $this->listTableDetails($tableName); 00269: } 00270: 23 Doctrine\DBAL\Schema\AbstractSchemaManager::listTables() /var/www/html/myinstallation/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php: 01038: } 01039: 01040: $tables = $this->listTables(); 01041: 01042: return new Schema($tables, $sequences, $this->createSchemaConfig(), $namespaces); 22 Doctrine\DBAL\Schema\AbstractSchemaManager::createSchema() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php: 00210: { 00211: // Build the schema definitions 00212: $fromSchema = $this->connection->getSchemaManager()->createSchema(); 00213: $toSchema = $this->buildExpectedSchemaDefinitions($this->connectionName); 00214: 21 TYPO3\CMS\Core\Database\Schema\ConnectionMigrator::buildSchemaDiff() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Schema/ConnectionMigrator.php: 00105: public function getUpdateSuggestions(bool $remove = false): array 00106: { 00107: $schemaDiff = $this->buildSchemaDiff(); 00108: 00109: if ($remove === false) { 20 TYPO3\CMS\Core\Database\Schema\ConnectionMigrator::getUpdateSuggestions(boolean) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Schema/SchemaMigrator.php: 00068: 00069: $updateSuggestions[$connectionName] = 00070: $connectionMigrator->getUpdateSuggestions($remove); 00071: } 00072: 19 TYPO3\CMS\Core\Database\Schema\SchemaMigrator::getUpdateSuggestions(array) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php: 00470: } 00471: $sqlStatements = $sqlReader->getCreateTableStatementArray(implode(LF . LF, array_filter($sqlStatements))); 00472: $updateStatements = $schemaMigrator->getUpdateSuggestions($sqlStatements); 00473: 00474: $updateStatements = array_merge_recursive(...array_values($updateStatements)); 18 TYPO3\CMS\Extensionmanager\Utility\InstallUtility::updateDatabase(array) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php: 00196: } 00197: $this->reloadCaches(); 00198: $this->updateDatabase($extensionKeys); 00199: 00200: foreach ($extensionKeys as $extensionKey) { 17 TYPO3\CMS\Extensionmanager\Utility\InstallUtility::install("unal_myext") /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extensionmanager/Classes/Service/ExtensionManagementService.php: 00363: $this->emitWillInstallExtensionsSignal($installQueue); 00364: $resolvedDependencies = []; 00365: $this->installUtility->install(...array_keys($installQueue)); 00366: foreach ($installQueue as $extensionKey => $_) { 00367: $this->emitHasInstalledExtensionSignal($extensionKey); 16 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::installDependencies(array) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extensionmanager/Classes/Service/ExtensionManagementService.php: 00225: $installedDependencies = []; 00226: if ($this->automaticInstallationEnabled) { 00227: $installedDependencies = $this->installDependencies($installQueue); 00228: } 00229: 15 TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::installExtension(TYPO3\CMS\Extensionmanager\Domain\Model\Extension) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php: 00093: $this->installUtility->enrichExtensionWithDetails($extensionKey, false) 00094: ); 00095: if ($this->managementService->installExtension($extension) === false) { 00096: $this->redirect('unresolvedDependencies', 'List', null, ['extensionKey' => $extensionKey]); 00097: } 14 TYPO3\CMS\Extensionmanager\Controller\ActionController::toggleExtensionInstallationStateAction("unal_myext") 13 call_user_func_array(array, array) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php: 00314: if (!$validationResult->hasErrors()) { 00315: $this->emitBeforeCallActionMethodSignal($preparedArguments); 00316: $actionResult = call_user_func_array([$this, $this->actionMethodName], $preparedArguments); 00317: } else { 00318: $methodTagsValues = $this->reflectionService->getMethodTagsValues(get_class($this), $this->actionMethodName); 12 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::callActionMethod() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php: 00174: $this->initializeView($this->view); 00175: } 00176: $this->callActionMethod(); 00177: $this->renderAssetsForRequest($request); 00178: } 11 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::processRequest(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php: 00083: $controller = $this->resolveController($request); 00084: try { 00085: $controller->processRequest($request, $response); 00086: } catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $ignoredException) { 00087: } 10 TYPO3\CMS\Extbase\Mvc\Dispatcher::dispatch(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Mvc/Web/BackendRequestHandler.php: 00030: /** @var $response \TYPO3\CMS\Extbase\Mvc\ResponseInterface */ 00031: $response = $this->objectManager->get(\TYPO3\CMS\Extbase\Mvc\Web\Response::class); 00032: $this->dispatcher->dispatch($request, $response); 00033: return $response; 00034: } 9 TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler::handleRequest() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Core/Bootstrap.php: 00197: $requestHandler = $requestHandlerResolver->resolveRequestHandler(); 00198: 00199: $response = $requestHandler->handleRequest(); 00200: // If response is NULL after handling the request we need to stop 00201: // This happens for instance, when a USER object was converted to a USER_INT 8 TYPO3\CMS\Extbase\Core\Bootstrap::handleRequest() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/extbase/Classes/Core/Bootstrap.php: 00184: { 00185: $this->initialize($configuration); 00186: return $this->handleRequest(); 00187: } 00188: 7 TYPO3\CMS\Extbase\Core\Bootstrap::run("", array) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/BackendModuleRequestHandler.php: 00180: // Run Extbase 00181: $bootstrap = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Core\Bootstrap::class); 00182: $content = $bootstrap->run('', $configuration); 00183: 00184: $response->getBody()->write($content); 6 TYPO3\CMS\Backend\Http\BackendModuleRequestHandler::dispatchModule("tools_ExtensionmanagerExtensionmanager") /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/BackendModuleRequestHandler.php: 00087: 00088: $moduleName = (string)$this->request->getQueryParams()['M']; 00089: return $this->dispatchModule($moduleName); 00090: } 00091: 5 TYPO3\CMS\Backend\Http\BackendModuleRequestHandler::handleRequest(TYPO3\CMS\Core\Http\ServerRequest) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/core/Classes/Core/Bootstrap.php: 00317: 00318: // Execute the command which returns a Response object or NULL 00319: $this->response = $requestHandler->handleRequest($request); 00320: return $this; 00321: } 4 TYPO3\CMS\Core\Core\Bootstrap::handleRequest(TYPO3\CMS\Core\Http\ServerRequest) /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Classes/Http/Application.php: 00090: } 00091: 00092: $this->bootstrap->handleRequest($this->request); 00093: 00094: if ($execute !== null) { 3 TYPO3\CMS\Backend\Http\Application::run() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php: 00022: $classLoader = require __DIR__ . '/../../../../../../vendor/autoload.php'; 00023: 00024: (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run(); 00025: }); 2 {closure}() /var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php: 00023: 00024: (new \TYPO3\CMS\Backend\Http\Application($classLoader))->run(); 00025: }); 1 require("/var/www/html/myinstallation/vendor/typo3/cms/typo3/sysext/backend/Resources/Private/Php/backend.php") /var/www/html/myinstallation/vendor/typo3/cms/typo3/index.php: 00001: <?php 00002: 00003: require __DIR__ . '/sysext/backend/Resources/Private/Php/backend.php';
If I drop my geometry column, Extension Manager works OK; however, I need it.
Thank you in advance.
Actions