When upgrading from Omeka S on PHP 7.4.3 to Omeka S4, I encountered an error while running the migrate page. Should I upgrade to PHP 8 first? Any suggestions would be greatly appreciated. Thank you.
Doctrine\DBAL\Exception\NonUniqueFieldNameException
An exception occurred while executing ‘ALTER TABLE item ADD primary_media_id INT DEFAULT NULL;’: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘primary_media_id’
Details:
PDOException: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘primary_media_id’ in /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:141 Stack trace: #0 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(141): PDO->query() #1 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOQueryImplementation.php(38): Doctrine\DBAL\Driver\PDOConnection->doQuery() #2 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1449): Doctrine\DBAL\Driver\PDOConnection->query() #3 /var/www/html/omeka-s-4/application/data/migrations/20220824103916_AddPrimaryMediaToItem.php(11): Doctrine\DBAL\Connection->query() #4 /var/www/html/omeka-s-4/application/src/Db/Migration/Manager.php(80): Omeka\Db\Migrations\AddPrimaryMediaToItem->up() #5 /var/www/html/omeka-s-4/application/src/Controller/MigrateController.php(38): Omeka\Db\Migration\Manager->upgrade() #6 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php(71): Omeka\Controller\MigrateController->indexAction() #7 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\Controller\AbstractActionController->onDispatch() #8 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #9 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(97): Laminas\EventManager\EventManager->triggerEventUntil() #10 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/DispatchListener.php(132): Laminas\Mvc\Controller\AbstractController->dispatch() #11 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\DispatchListener->onDispatch() #12 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #13 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Application.php(325): Laminas\EventManager\EventManager->triggerEventUntil() #14 /var/www/html/omeka-s-4/index.php(21): Laminas\Mvc\Application->run() #15 {main} Next Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘primary_media_id’ in /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18 Stack trace: #0 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(143): Doctrine\DBAL\Driver\PDO\Exception::new() #1 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOQueryImplementation.php(38): Doctrine\DBAL\Driver\PDOConnection->doQuery() #2 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1449): Doctrine\DBAL\Driver\PDOConnection->query() #3 /var/www/html/omeka-s-4/application/data/migrations/20220824103916_AddPrimaryMediaToItem.php(11): Doctrine\DBAL\Connection->query() #4 /var/www/html/omeka-s-4/application/src/Db/Migration/Manager.php(80): Omeka\Db\Migrations\AddPrimaryMediaToItem->up() #5 /var/www/html/omeka-s-4/application/src/Controller/MigrateController.php(38): Omeka\Db\Migration\Manager->upgrade() #6 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php(71): Omeka\Controller\MigrateController->indexAction() #7 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\Controller\AbstractActionController->onDispatch() #8 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #9 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(97): Laminas\EventManager\EventManager->triggerEventUntil() #10 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/DispatchListener.php(132): Laminas\Mvc\Controller\AbstractController->dispatch() #11 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\DispatchListener->onDispatch() #12 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #13 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Application.php(325): Laminas\EventManager\EventManager->triggerEventUntil() #14 /var/www/html/omeka-s-4/index.php(21): Laminas\Mvc\Application->run() #15 {main} Next Doctrine\DBAL\Exception\NonUniqueFieldNameException: An exception occurred while executing ‘ALTER TABLE item ADD primary_media_id INT DEFAULT NULL;’: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘primary_media_id’ in /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:84 Stack trace: #0 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(182): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() #1 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(159): Doctrine\DBAL\DBALException::wrapException() #2 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2226): Doctrine\DBAL\DBALException::driverExceptionDuringQuery() #3 /var/www/html/omeka-s-4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1451): Doctrine\DBAL\Connection->handleExceptionDuringQuery() #4 /var/www/html/omeka-s-4/application/data/migrations/20220824103916_AddPrimaryMediaToItem.php(11): Doctrine\DBAL\Connection->query() #5 /var/www/html/omeka-s-4/application/src/Db/Migration/Manager.php(80): Omeka\Db\Migrations\AddPrimaryMediaToItem->up() #6 /var/www/html/omeka-s-4/application/src/Controller/MigrateController.php(38): Omeka\Db\Migration\Manager->upgrade() #7 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php(71): Omeka\Controller\MigrateController->indexAction() #8 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\Controller\AbstractActionController->onDispatch() #9 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #10 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(97): Laminas\EventManager\EventManager->triggerEventUntil() #11 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/DispatchListener.php(132): Laminas\Mvc\Controller\AbstractController->dispatch() #12 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\DispatchListener->onDispatch() #13 /var/www/html/omeka-s-4/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners() #14 /var/www/html/omeka-s-4/vendor/laminas/laminas-mvc/src/Application.php(325): Laminas\EventManager\EventManager->triggerEventUntil() #15 /var/www/html/omeka-s-4/index.php(21): Laminas\Mvc\Application->run() #16 {main}