Updating to 3.0.5 - Database Errors

Hi,
I have Invoice Ninja via Softaculous on my domain. When I update to 3.0.5, I receive a lot of MySQL database errors. What can I do to fix it?
I tried adding the columns myself, but was unsure of the structure. After adding the posted one below, a few others came through as not found.

QueryException in Connection.php line 729:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'invoices.is_public' in 'where clause' (SQL: select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients,
SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent,
COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = 1 and <code>clients</code>.<code>is_deleted</code> = 0 and <code>invoices</code>.<code>is_deleted</code> = 0 and <code>invoices</code>.<code>is_recurring</code> = 0 and <code>invoices</code>.<code>is_public</code> = 1 and <code>invoices</code>.<code>invoice_type_id</code> = 1 group by <code>accounts</code>.<code>id</code> limit 1)
in Connection.php line 729
at Connection->runQueryCallback('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), object(Closure)) in Connection.php line 685
at Connection->run('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), object(Closure)) in Connection.php line 349
at Connection->select('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), true) in Builder.php line 1610
at Builder->runSelect() in Builder.php line 1596
at Builder->get(array('*')) in Builder.php line 1577
at Builder->first() in DashboardRepository.php line 183
at DashboardRepository->totals('1', '1', true) in DashboardController.php line 35
at DashboardController->index()
at call_user_func_array(array(object(DashboardController), 'index'), array()) in compiled.php line 9482
at Controller->callAction('index', array()) in compiled.php line 9544
at ControllerDispatcher->call(object(DashboardController), object(Route), 'index') in compiled.php line 9524
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 9525
at ControllerDispatcher->callWithinStack(object(DashboardController), object(Route), object(Request), 'index') in compiled.php line 9512
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\DashboardController', 'index') in compiled.php line 8582
at Route->runController(object(Request)) in compiled.php line 8569
at Route->run(object(Request)) in compiled.php line 8283
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 90
at Authenticate->handle(object(Request), object(Closure), 'user')
at call_user_func_array(array(object(Authenticate), 'handle'), array(object(Request), object(Closure), 'user')) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 8284
at Router->runRouteWithinStack(object(Route), object(Request)) in compiled.php line 8275
at Router->dispatchToRoute(object(Request)) in compiled.php line 8265
at Router->dispatch(object(Request)) in compiled.php line 2419
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure))
at call_user_func_array(array(object(Debugbar), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartupCheck.php line 197
at StartupCheck->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartupCheck), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in QueryLogging.php line 29
at QueryLogging->handle(object(Request), object(Closure))
at call_user_func_array(array(object(QueryLogging), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in DuplicateSubmissionCheck.php line 36
at DuplicateSubmissionCheck->handle(object(Request), object(Closure))
at call_user_func_array(array(object(DuplicateSubmissionCheck), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3225
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 42
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13532
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 12022
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13271
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13208
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3286
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 2366
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2350
at Kernel->handle(object(Request)) in index.php line 52
PDOException in Connection.php line 333:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'invoices.is_public' in 'where clause'
in Connection.php line 333
at PDO->prepare('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1') in Connection.php line 333
at Connection->Illuminate\Database\{closure}(object(MySqlConnection), 'select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1')) in Connection.php line 722
at Connection->runQueryCallback('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), object(Closure)) in Connection.php line 685
at Connection->run('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), object(Closure)) in Connection.php line 349
at Connection->select('select COUNT(DISTINCT CASE WHEN <code>invoices</code>.<code>id</code> IS NOT NULL THEN <code>clients</code>.<code>id</code> ELSE null END) billed_clients, SUM(CASE WHEN <code>invoices</code>.<code>invoice_status_id</code> >= 2 THEN 1 ELSE 0 END) invoices_sent, COUNT(DISTINCT <code>clients</code>.<code>id</code>) active_clients from <code>accounts</code> left join <code>clients</code> on <code>accounts</code>.<code>id</code> = <code>clients</code>.<code>account_id</code> left join <code>invoices</code> on <code>clients</code>.<code>id</code> = <code>invoices</code>.<code>client_id</code> where <code>accounts</code>.<code>id</code> = ? and <code>clients</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_deleted</code> = ? and <code>invoices</code>.<code>is_recurring</code> = ? and <code>invoices</code>.<code>is_public</code> = ? and <code>invoices</code>.<code>invoice_type_id</code> = ? group by <code>accounts</code>.<code>id</code> limit 1', array('1', false, false, false, true, '1'), true) in Builder.php line 1610
at Builder->runSelect() in Builder.php line 1596
at Builder->get(array('*')) in Builder.php line 1577
at Builder->first() in DashboardRepository.php line 183
at DashboardRepository->totals('1', '1', true) in DashboardController.php line 35
at DashboardController->index()
at call_user_func_array(array(object(DashboardController), 'index'), array()) in compiled.php line 9482
at Controller->callAction('index', array()) in compiled.php line 9544
at ControllerDispatcher->call(object(DashboardController), object(Route), 'index') in compiled.php line 9524
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 9525
at ControllerDispatcher->callWithinStack(object(DashboardController), object(Route), object(Request), 'index') in compiled.php line 9512
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\DashboardController', 'index') in compiled.php line 8582
at Route->runController(object(Request)) in compiled.php line 8569
at Route->run(object(Request)) in compiled.php line 8283
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 90
at Authenticate->handle(object(Request), object(Closure), 'user')
at call_user_func_array(array(object(Authenticate), 'handle'), array(object(Request), object(Closure), 'user')) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 8284
at Router->runRouteWithinStack(object(Route), object(Request)) in compiled.php line 8275
at Router->dispatchToRoute(object(Request)) in compiled.php line 8265
at Router->dispatch(object(Request)) in compiled.php line 2419
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure))
at call_user_func_array(array(object(Debugbar), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartupCheck.php line 197
at StartupCheck->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartupCheck), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in QueryLogging.php line 29
at QueryLogging->handle(object(Request), object(Closure))
at call_user_func_array(array(object(QueryLogging), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in DuplicateSubmissionCheck.php line 36
at DuplicateSubmissionCheck->handle(object(Request), object(Closure))
at call_user_func_array(array(object(DuplicateSubmissionCheck), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3225
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 42
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13532
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 12022
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13271
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13208
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3286
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in compiled.php line 10021
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 10006
at Pipeline->then(object(Closure)) in compiled.php line 2366
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2350
at Kernel->handle(object(Request)) in index.php line 52

It looks like a database migration failed to run:

I have a few questions to help debug the problem:

  • What do you see when you load /update (or /public/update) in your browser?
  • Which version are you upgrading from?
  • Are you moving to a new server?

Hi Hillel, thanks for replying!

  • public/update shows:
    SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'page_size' (SQL: alter tableaccountsaddpage_sizevarchar(255) not null default 'A4', addlive_previewtinyint(1) not null default '1', addinvoice_number_paddingsmallint not null default '4')

  • I believe I was on 3.0.3, which was giving me similar issues. I can’t recall which version I had previously, but I started using Invoice Ninja in April 2016.

  • I am not moving to a new server at this time.

Thanks again!

Have you moved the app to a new server in the past?

It may be related to this issue: https://www.invoiceninja.com/forums/topic/problem-with-new-install/#post-5313

I haven’t moved to a new server, at least to my knowledge. I use a small private host, so they might have updated?

Do you recommend following the steps in the shared issue to resolve mine?

Try running this SQL query and checking what value you see for ‘Engine’

SHOW TABLE STATUS WHERE Name = ‘clients’;

Thanks!
Engine result is ‘InnoDB’

Thanks, the fix won’t help here. From the error the following migration failed:

database/migrations/2016_04_18_174135_add_page_size.php

You’ll need to comment out the parts that are complaining and reload /update.

This part I’m unsure of. Here’s my code in 2016_04_18_174135_add_page_size.php. The only thing I recognize from the errors is the lines with public_id?

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddPageSize extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('accounts', function ($table) {
            $table->string('page_size')->default('A4');
            $table->boolean('live_preview')->default(true);
            $table->smallInteger('invoice_number_padding')->default(4);
        });

        Schema::table('fonts', function ($table) {
            $table->dropColumn('is_early_access');
        });

        Schema::create('expense_categories', function($table)
        {
            $table->increments('id');
            $table->unsignedInteger('user_id');
            $table->unsignedInteger('account_id')->index();
            $table->timestamps();
            $table->softDeletes();
            $table->string('name')->nullable();
            $table->unsignedInteger('public_id')->index();
        });

        Schema::table('expense_categories', function ($table) {
            $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->unique( array('account_id','public_id') );
        });

        Schema::table('expenses', function ($table) {
            $table->unsignedInteger('expense_category_id')->nullable()->index();
        });

        Schema::table('expenses', function ($table) {
            $table->foreign('expense_category_id')->references('id')->on('expense_categories')->onDelete('cascade');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('accounts', function ($table) {
            $table->dropColumn('page_size');
            $table->dropColumn('live_preview');
            $table->dropColumn('invoice_number_padding');
        });

        Schema::table('fonts', function ($table) {
            $table->boolean('is_early_access');
        });

        Schema::table('expenses', function ($table) {
            $table->dropForeign('expenses_expense_category_id_foreign');
            $table->dropColumn('expense_category_id');
        });

        Schema::dropIfExists('expense_categories');
    }
}

Run describe table_name (ie, describe clients), if you see the fields you can comment out the section.

Thank you Hillel - I missed the part about checking /update for the issues.

I’ve been working through and commenting out what /update is telling me, and just came across this one.

SQLSTATE[HY000]: General error: 1005 Can't create tableniteowlp_ninj868.#sql-d2bd2_851747(errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter tableexpensesadd constraintexpenses_expense_category_id_foreignforeign key (expense_category_id) referencesexpense_categories(id) on delete cascade)

You can check the engine type for the expenses table.

Assuming it’s InnoDB I’d suggest commenting out the foreign key.

I can’t thank you enough for your help. I’ve been working through the files and the errors. I have this one appearing on /update and I can’t figure out which php file the schema is in.

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'client_enable_auto_bill' (SQL: alter tableinvoicesaddclient_enable_auto_billtinyint(1) not null default '0')

database/migrations/2016_04_23_182223_payments_changes.php

How can I fix this error?

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (niteowlp_ninj868.payment_types, CONSTRAINT payment_types_gateway_type_id_foreign FOREIGN KEY (gateway_type_id) REFERENCES gateway_types (id) ON DELETE CASCADE) (SQL: update payment_types set gateway_type_id = 2 where id = 2)

Comment out the foreign key in this file database/migrations/2016_09_05_150625_create_gateway_types.php

This one I can’t figure out. Here’s where my code is at.

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateGatewayTypes extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::dropIfExists('gateway_types');
        Schema::create('gateway_types', function($table)
        {
            $table->increments('id');
            $table->string('alias');
            $table->string('name');
        });

        Schema::dropIfExists('account_gateway_settings');
        Schema::create('account_gateway_settings', function($table)
        {
            $table->increments('id');

            $table->unsignedInteger('account_id');
            $table->unsignedInteger('user_id');
            /*$table->unsignedInteger('gateway_type_id')->nullable();*/

            $table->timestamp('updated_at')->nullable();

            $table->unsignedInteger('min_limit')->nullable();
            $table->unsignedInteger('max_limit')->nullable();
        });

        Schema::table('account_gateway_settings', function($table)
        {
            $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            /*$table->foreign('gateway_type_id')->references('id')->on('gateway_types')->onDelete('cascade');*/
        });

        Schema::table('payment_types', function($table)
        {
            /*$table->unsignedInteger('gateway_type_id')->nullable();*/
        });

        // http://laravel.io/forum/09-18-2014-foreign-key-not-saving-in-migration
        DB::statement('SET FOREIGN_KEY_CHECKS=0;');
        Schema::table('payment_types', function($table)
        {
            /*$table->foreign('gateway_type_id')->references('id')->on('gateway_types')->onDelete('cascade');*/
        });
        DB::statement('SET FOREIGN_KEY_CHECKS=1;');
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('payment_types', function($table)
        {
            /*$table->dropForeign('payment_types_gateway_type_id_foreign');*/
            /*$table->dropColumn('gateway_type_id');*/
        });

        Schema::dropIfExists('account_gateway_settings');
        Schema::dropIfExists('gateway_types');
    }
}

Again, thank you so much for your help!

Did you mean to comment out this row?

        /*$table->unsignedInteger('gateway_type_id')->nullable();*/

Nope! Thanks for catching that. I’m still getting the error though. :frowning:
Did I totally break Invoice Ninja? Or is this a common update issue?

Do you have a backup of the database from before the update?

Are you still seeing the exact the same error, with the foreign key commented out you wouldn’t expect it.