Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

auroralabs's avatar

Database Failed to Import

Hi all,

I just finished developing a shiny new site with Laravel & Nova locally with php7.2 & mySQL 7. All working great until i uploaded to Siteground and the database would not install. The issue came down to a table using json type in two of its rows. Unfortunately many hosting companies including Siteground do not support mySQL 5.7 only 5.6 unless upgrading to a fully fledged dedicated server.

The problem came down to this table from Nova 2.x I believe

CREATE TABLE `action_events` (
  `original` json DEFAULT NULL,
  `changes` json DEFAULT NULL,

This did not exist in previous versions of Nova so as a temporary measure i changed these to Varchar and managed to get the database importing and site up an running.

Does anyone know is this is going to cause any issues or is json row types going to be more common with Laravel as a whole as I may need to rethink hosting providers if this is the case..

0 likes
3 replies
bobbybouwmann's avatar

@auroralabs Well they are stored as json. This means the content is JSON as well. So whenever you perform some action in nova, this event will be logged. The important thing here is that a json object can be bigger than a single string and then you will get weird results in nova from the event logs.

If you don't use events you're good to go, if you do use events I would highly suggest to use a different hosting provider or a service like Forge so you do have the latest mysql version up and running ;)

siangboon's avatar

As you already knew that the json data type is the new feature of MySQL 5.7 and it is to provides 2 advantages over storing JSON-format strings in a string column:

  • Automatic validation of JSON documents stored in JSON columns. Invalid documents produce an error.

  • Optimized storage format.

at the end, it's just a column to store data, and I think that it's shouldn't cause any big issue to your query, perhaps you may just use the $casts property on your model to converting attributes to the data type needed and may consider use LONGBLOB or LONGTEXT if json data is big.

but regardless of the issue, MySQL 5.6 support had end on Feb 2018 (EXT. SUPPORT END on Feb 2021), perhaps this may one of good reason for you to look for other hosting provider.

bobbybouwmann's avatar

@siangboon Has a good point as well in that MySQL 5.6 is not supported anymore! You should definitely upgrade or ask the hosting provider to update it for you!

Please or to participate in this conversation.