Currently unable to upgrade from OJS to 3.3.0-10

My system:
PHP 7.4.28
Mariadb Ver 15.1 Distrib 10.5.15-MariaDB
OS: Debian GNU/Linux 11 (bullseye)

I am getting this error while upgrades:

PHP Fatal error: Uncaught Doctrine\DBAL\Schema\SchemaException: There is no column with name ‘assoc_id’ on table ‘citations’. in /var/www/html/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php:86
Stack trace:
#0 /var/www/html/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php(711): Doctrine\DBAL\Schema\SchemaException::columnDoesNotExist()
#1 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(884): Doctrine\DBAL\Schema\Table->getColumn()
#2 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php(30): Illuminate\Database\Connection->getDoctrineColumn()
#3 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php(40): Illuminate\Database\Schema\Grammars\RenameColumn::compile()
#4 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php(128): Illuminate\Database\Sch in /var/www/vestnik/html/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php on line 86

Revert all files and database to and try to upgrade to 3.1x first… I think there is a “gap” between 3.0x to 3.3x and upgrading directly from 3.0 to 3.3 is a “big jump” that needs some “stepstones” that exist in 3.1 and later. I use metaphors because I don’t know their technical terms.

I tried to upgrade from OJS to OJS 3.1.2-4 and got an error:

[schema: dbscripts/xml/ojs_schema.xml]
ERROR: Upgrade failed: DB: Data too long for column ‘citations’ at row 4670

But the length of the row 4670 is only:
select LENGTH(citations) from submissions where submission_id = 4670;
| LENGTH(citations) |
| 1378 |

Not sure how are you upgrading but probably you are in trouble due your DB charset.

My recommendation is following the steps of this manual (do a mysqldump) and move to utf8mb4 to ensure your fields have the proper length:

BTW, be user you are in innoDB (myISAM will drive you to performance issues).


I wonder why this is not mentioned in the upgrade guide marc linked to, but I have read in the forums before that skipping minor versions is not fully supported for OJS upgrades. So you would probably need to upgrade 3.0.x.x to 3.1.x.x to 3.2.x.x and then finally to 3.3.x.x - meaning: three upgrades instead of one.

Database encoding has been mentioned by marc. You should change it to some flavor of utf8 before doing the upgrades. We ran into issues when we had not changed the collation before upgrading 3.1 to 3.2.