Moving from 3.5.1 to 4.2

Hi All,

In next days we will upgrade our 3.5.1 to newest 4.2.x.
I know we must raise PHP to 7.x and Python to 3.x.
Our matomo relys on RedHat 7.x and this means not all PHP/python modules are available in our repo channels.

My questions:

a) is it mandatory to install php-curl extension (unavailable in our RH software collection) or can we have a working 4.x version without this PHP module?

b) besides to bring python to 3.x, are there specific python modules to install (we heavly use log analytics)?

c) Coming from 3.5.1, we have to upgrade our MySQL (from the command line calling ./path/to/matomo/console core:update). Is it needed to do also any db conversion for matomo 4.x?

Thanks in advance for your precious help.
Pietro Moretti


php-curl is not completly mandatory, but a lot of things won’t work without it. I think Matomo can’t connect to HTTPS websites (like the marketplace or the update server) without php-curl and php-openssl.
If you don’t want your Matomo server to connect, then it should be fine and you can look at

log-analytics doesn’t need any Python modules apart from those that are included in the python standard library.

When you update from Matomo 3 to Matomo 4 there are many database migrations that are applied during the update (or rather the core:update call) and some of them might take quite some time as some larger migrations were delayed to the major version jump.
You might want to look at in case your database is quite large.

After the update is done you might also want to migrate all of your tables to utf8mb (so that emojis and more work fine). This might also take a long time, you can read more here:

Hi Lukas,

Thanks for your prompt reply.

About database upgrade, I would want to ask you a little more, as our matomo has two large databases (ca 350GB) in a master2master replication.

I guess it is not possible to run database upgrade and conversion with a unique call, am I right?

What if during the conversion step I don’t stop JS tracking or logs import or both? Could I take a chance to lose any data or it might simply take a much more long time?

Can I schedule the database conversion step in the weeks or months next after the database upgrade?

Thanks again for your precious help.
Pietro Moretti