Migrating From v4.5.17 to v5

I’m currently running v4.5.17 and would like to migrate to v5.

Is there a documented process available?


Appreciated, thanks.

I now have 4.5.40 installed but when I read the instructions to upgrade to v5 I saw this:

The migration relies heavily on the Laravel queue system, so you will need to ensure that you have configured the cron scheduler which boots the laravel queue for you. If you do not configure the cron scheduler, the migration will not work and you will end up with a blank company with no content.

With no explanation on how to configure the cron scheduler which boots the laravel queue.

Am I missing something?

Also, the cPanel backups are now over 1 GB, they were half that.

There’s info here:


Thanks Hillel

We already have cron jobs setup for reminders etc, what does this task do though:

cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

In v4 there were specific crons for reminders: ninja:send-invoices and ninja:send-reminders

In v5 we use a scheduler instead which then calls the other commands.

Cool, that seems much more efficient.

So this would be correct ?

Looks good but hard to know for sure

OK, time to pull the trigger then !


Have you setup the v5 app?

Missed that little link, sorry.

Looking at the steps involved I am going to have to leave this until another time.

I assume if I backup the MySQL data that will be OK ?

I have years of historical invoice data in there that I simply cannot lose.

Not sure I follow, you can use the migration tool in the latest v4 to bring over your data.

Sorry, I mean when I migrate to v5.

What do I do with the data?

I don’t understand what you mean by “What do I do with the data?”, the migration tool copies the data from v4 to v5.

That was my concern.

Whether my client and invoicing data in version 4 would be migrated.

Yes, all data is migrated

Apologies Hillel

I am clearly missing a simple step here.

I have upgraded to v4.5.40 and downloaded the v5.2.5-release.zip.

I have unzipped the files and went to the setup page.

I followed the steps and when I try to login using the original credentials all I get is Error 500.

I checked the laravel log and there’s an error but from the day before which makes no sense:

[2021-06-20 22:58:56] production.INFO: SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘password_resets’ already exists (SQL: create table password_resets (email varchar(128) not null, token varchar(255) not null, created_at timestamp null) default character set utf8mb4 collate ‘utf8mb4_unicode_ci’ engine = InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8)
[2021-06-20 23:03:11] production.ERROR: Trying to get property ‘settings’ of non-object {“exception”:"[object] (ErrorException(code: 0): Trying to get property ‘settings’ of non-object at /home/MYDOMAIN/public_html/app/Mail/Admin/ResetPasswordObject.php:40)

And then a stack trace.

Luckily I took a cPanel backup but this is just insane.

Are you setting up v5 using a blank database?