I killed my invoice ninja trying update to the latest v4 version

About 40 pages all related to when I run the artisan Migrate.

Did some google searches and keep running into needing to modify the php.ini file but I am not sure

chris@server1:/var/www/html/invoiceninja$ sudo -u www-data php artisan migrate
[sudo] password for chris:


  • Application In Production!     *
    

Do you really wish to run this command? (yes/no) [no]:

yes

In Connection.php line 669:

could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = m
igrations and table_type = ‘BASE TABLE’)

In PDOConnection.php line 47:

could not find driver

In PDOConnection.php line 43:

could not find driver

Try sudo apt-get install php7.4-mysql
Then restart server

P.S. don’t try to run artisan/compose manually, they are last resort as there may be some issues running them. going to the update URL of your website should do the equivalent things. Your current issue is not related to artisan etc, it looks like php cant talk with mysql…

Now I get this error

There appears to be a problem with your configuration, please check your .env file.

If you’ve run ‘php artisan config:cache’ you will need to run ‘php artisan config:clear’

Ok, try running the below and paste laravel and server logs if the issue is still there.

sudo -u www-data php artisan config:clear

So now I get a blank page with a big “500 | Server Error” in the middle of the page.

nginx error.log
chris@server1:~$ tail /var/log/nginx/error.log
#2 /var/www/html/invoiceninja/vendor/composer/ClassLoader.php(322): Composer\Aut oload\includeFile()
#3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/he lpers.php(109): Composer\Autoload\ClassLoader->loadClass()
#4 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation /Package…PHP message: PHP Fatal error: Uncaught Error: Class “Request” not fo und in /var/www/html/invoiceninja/app/Exceptions/Handler.php:104
Stack trace:
#0 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation /Bootstrap/HandleExceptions.php(123): App\Exceptions\Handler->render()
#1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation /Bootstrap/HandleExceptions.php(100): Illuminate\Foundation\Bootstrap\HandleExce ptions->renderHttpResponse()
#2 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation /Bootstrap/HandleExceptions.php(134): Illuminate\Foundation\Bootstrap\HandleExce ptions->handleException()
#3 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handle Shutdown()
#4 {main}
thrown in /var/www/html/invoiceninja/app/Exceptions/Handler.php on line 104" w hile reading response header from upstream, client: 192.168.100.1, server: ininj a.portcitydata.com, request: "G

Laravel-Error.log
chris@server1:/var/www/html/invoiceninja/storage/logs$ tail laravel-error.log
[2022-08-02T03:59:12.130326+00:00] production.ERROR: Illuminate\Database\QueryException [0] : /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php [Line 669] => could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’) {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:1,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T03:59:12.130529+00:00] production.ERROR: [stacktrace] 2022-08-02 03:59:12 could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’): #0 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback() #1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): Illuminate\Database\Connection->run() #2 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(18): Illuminate\Database\Connection->select() #3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(169): Illuminate\Database\Schema\MySqlBuilder->hasTable() #4 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(590): Illuminate\Database\Migrations\DatabaseMigrationRepository->repositoryExists() #5 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(91): Illuminate\Database\Migrations\Migrator->repositoryExists() #6 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(63): Illuminate\Database\Console\Migrations\MigrateCommand->prepareDatabase() #7 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Database\Console\Migrations\MigrateCommand->handle() #8 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(37): Illuminate\Container\BoundMethod::Illuminate\Container{closure}() #9 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #10 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod() #11 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call() #12 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\Container\Container->call() #13 /var/www/html/invoiceninja/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute() #14 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run() #15 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(1009): Illuminate\Console\Command->run() #16 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand() #17 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun() #18 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run() #19 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Console\Application->run() #20 /var/www/html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle() #21 {main} {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:2,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T04:26:56.137053+00:00] production.ERROR: Illuminate\Database\QueryException [0] : /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php [Line 669] => could not find driver (SQL: select count() as aggregate from users where users.deleted_at is null) {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0”,“locale”:“en”,“ip”:“192.168.100.1”,“count”:1,“is_console”:“no”,“is_api”:“no”,“db_server”:“mysql”,“url”:“login”} []
[2022-08-02T04:26:56.137438+00:00] production.ERROR: [stacktrace] 2022-08-02 04:26:56 could not find driver (SQL: select count(
) as aggregate from users where users.deleted_at is null): #0 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback() #1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): Illuminate\Database\Connection->run() #2 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2159): Illuminate\Database\Connection->select() #3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2147): Illuminate\Database\Query\Builder->runSelect() #4 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2619): Illuminate\Database\Query\Builder->Illuminate\Database\Query{closure}() #5 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2148): Illuminate\Database\Query\Builder->onceWithColumns() #6 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2546): Illuminate\Database\Query\Builder->get() #7 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2474): Illuminate\Database\Query\Builder->aggregate() #8 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1385): Illuminate\Database\Query\Builder->count() #9 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): Illuminate\Database\Eloquent\Builder->__call() #10 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1622): Illuminate\Database\Eloquent\Model->forwardCallTo() #11 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1634): Illuminate\Database\Eloquent\Model->__call() #12 /var/www/html/invoiceninja/app/Http/Controllers/Auth/LoginController.php(60): Illuminate\Database\Eloquent\Model::__callStatic() #13 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\Auth\LoginController->getLoginWrapper() #14 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction() #15 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch() #16 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\Routing\Route->runController() #17 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Route->run() #18 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing{closure}() #19 /var/www/html/invoiceninja/app/Http/Middleware/RedirectIfAuthenticated.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #20 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\RedirectIfAuthenticated->handle() #21 /var/www/html/invoiceninja/app/Http/Middleware/StartupCheck.php(54): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #22 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\StartupCheck->handle() #23 /var/www/html/invoiceninja/app/Http/Middleware/QueryLogging.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #24 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\QueryLogging->handle() #25 /var/www/html/invoiceninja/app/Http/Middleware/DuplicateSubmissionCheck.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #26 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\DuplicateSubmissionCheck->handle() #27 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #28 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() #29 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #30 /var/www/html/invoiceninja/app/Http/Middleware/VerifyCsrfToken.php(44): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle() #31 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\VerifyCsrfToken->handle() #32 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #33 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle() #34 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #35 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle() #36 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #37 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle() #38 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #39 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle() #40 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #41 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then() #42 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack() #43 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute() #44 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute() #45 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch() #46 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}() #47 /var/www/html/invoiceninja/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(60): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #48 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle() #49 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #50 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() #51 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #52 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then() #53 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() #54 /var/www/html/invoiceninja/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle() #55 {main} {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0”,“locale”:“en”,“ip”:“192.168.100.1”,“count”:2,“is_console”:“no”,“is_api”:“no”,“db_server”:“mysql”,“url”:“login”}
[2022-08-02T04:35:16.522470+00:00] production.ERROR: Illuminate\Database\QueryException [0] : /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php [Line 669] => could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’) {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:1,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T04:35:16.522680+00:00] production.ERROR: [stacktrace] 2022-08-02 04:35:16 could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’): #0 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback() #1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): Illuminate\Database\Connection->run() #2 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(18): Illuminate\Database\Connection->select() #3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(169): Illuminate\Database\Schema\MySqlBuilder->hasTable() #4 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(590): Illuminate\Database\Migrations\DatabaseMigrationRepository->repositoryExists() #5 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(91): Illuminate\Database\Migrations\Migrator->repositoryExists() #6 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(63): Illuminate\Database\Console\Migrations\MigrateCommand->prepareDatabase() #7 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Database\Console\Migrations\MigrateCommand->handle() #8 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(37): Illuminate\Container\BoundMethod::Illuminate\Container{closure}() #9 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #10 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod() #11 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call() #12 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\Container\Container->call() #13 /var/www/html/invoiceninja/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute() #14 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run() #15 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(1009): Illuminate\Console\Command->run() #16 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand() #17 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun() #18 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run() #19 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Console\Application->run() #20 /var/www/html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle() #21 {main} {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:2,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T05:07:51.542273+00:00] production.ERROR: Illuminate\Database\QueryException [0] : /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php [Line 669] => could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’) {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:1,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T05:07:51.542486+00:00] production.ERROR: [stacktrace] 2022-08-02 05:07:51 could not find driver (SQL: select * from information_schema.tables where table_schema = ninja and table_name = migrations and table_type = ‘BASE TABLE’): #0 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback() #1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): Illuminate\Database\Connection->run() #2 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(18): Illuminate\Database\Connection->select() #3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(169): Illuminate\Database\Schema\MySqlBuilder->hasTable() #4 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(590): Illuminate\Database\Migrations\DatabaseMigrationRepository->repositoryExists() #5 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(91): Illuminate\Database\Migrations\Migrator->repositoryExists() #6 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(63): Illuminate\Database\Console\Migrations\MigrateCommand->prepareDatabase() #7 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Database\Console\Migrations\MigrateCommand->handle() #8 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(37): Illuminate\Container\BoundMethod::Illuminate\Container{closure}() #9 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #10 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod() #11 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call() #12 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\Container\Container->call() #13 /var/www/html/invoiceninja/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute() #14 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run() #15 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(1009): Illuminate\Console\Command->run() #16 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand() #17 /var/www/html/invoiceninja/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun() #18 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run() #19 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Console\Application->run() #20 /var/www/html/invoiceninja/artisan(35): Illuminate\Foundation\Console\Kernel->handle() #21 {main} {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“”,“locale”:“en”,“ip”:“127.0.0.1”,“count”:2,“is_console”:“yes”,“is_api”:“no”,“db_server”:“mysql”,“url”:“/”}
[2022-08-02T05:32:33.229263+00:00] production.ERROR: ErrorException [0] : /var/www/html/invoiceninja/app/Http/Middleware/StartupCheck.php [Line 73] => Use of undefined constant NINJA_VERSION - assumed ‘NINJA_VERSION’ (this will throw an Error in a future version of PHP) {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0”,“locale”:“en”,“ip”:“192.168.100.1”,“count”:1,“is_console”:“no”,“is_api”:“no”,“db_server”:“mysql”,“url”:“update”}
[2022-08-02T05:32:33.373012+00:00] production.ERROR: [stacktrace] 2022-08-02 05:32:33 Use of undefined constant NINJA_VERSION - assumed ‘NINJA_VERSION’ (this will throw an Error in a future version of PHP): #0 /var/www/html/invoiceninja/app/Http/Middleware/StartupCheck.php(73): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() #1 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\StartupCheck->handle() #2 /var/www/html/invoiceninja/app/Http/Middleware/QueryLogging.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #3 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\QueryLogging->handle() #4 /var/www/html/invoiceninja/app/Http/Middleware/DuplicateSubmissionCheck.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #5 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\DuplicateSubmissionCheck->handle() #6 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #7 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() #8 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #9 /var/www/html/invoiceninja/app/Http/Middleware/VerifyCsrfToken.php(44): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle() #10 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\Http\Middleware\VerifyCsrfToken->handle() #11 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #12 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle() #13 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #14 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle() #15 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #16 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle() #17 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #18 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle() #19 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #20 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then() #21 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack() #22 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute() #23 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute() #24 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch() #25 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}() #26 /var/www/html/invoiceninja/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(60): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #27 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle() #28 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #29 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() #30 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #31 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then() #32 /var/www/html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() #33 /var/www/html/invoiceninja/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle() #34 {main} {“context”:“PHP”,“user_id”:0,“account_id”:0,“user_name”:“”,“method”:“GET”,“user_agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0”,“locale”:“en”,“ip”:“192.168.100.1”,“count”:2,“is_console”:“no”,“is_api”:“no”,“db_server”:“mysql”,“url”:“update”}

Ok looks like this is now artisan related, I was getting similar errors when I had the wrong version of php… but 7.4 should be the one for the latest v4.5.50.

Did you make sure to merge everything in the root directory with the files from the latest zip, or did you just copy vendors?

Artisan issues are over my head with the exception of the usual:

Go to /var/www/html/invoiceninja/
And run
sudo -u www-data php artisan optimize
sudo -u www-data php artisan migrate
systemctl restart nginx
Go to yourapp.com/update
Go to yourapp.com/?clear_cache=true

Yeah, I overwrote everything. I have a json backup that I made of all my data. I think at this point we’ve been working on this for so long; it makes more sense to just wipe it and start with a fresh install.
I intent was to upgrade to 4.5 so I could migrate to the version 5. I can you point me in the right direction for correct installation documentation. It seems to be pretty scarce and varies between sources. When I installed it the very first time, I followed this guide. Setup Invoice Ninja on Ubuntu 16.04 | 18.04 LTS with Nginx, MariaDB and PHP 7.2-FPM - geek rewind

Is there anything more current for both version 4 and 5.

Thanks for all the time you have put in on this! Above and beyond!

That guide seems fine, just install Ubuntu 20.04, replace all php7.2 install commands with php7.4, and instead of using git to clone, download the latest zip, unzip to /var/www/html/ and rename the ninja folder to invoiceninja (the reason you don’t want to copy things around is because there are hidden (.dot files) files that don’t copy easily.

Once v4.5.50 is running and has all the data you can look here for v5 install and migration from v4.

You might want to keep the current instance for now, just in case, as I am not sure how well the json file will transfer over to v4.5.50, also if you have uploaded any documents as attachments to expenses etc, they wont transfer over with json, you might have to transfer them manually to 4.5.50.
Also keeping the current instance you might be able to transfer the mysql db over if json method doesn’t work. (might have to make sure that the new APP_KEY in .env matches the current one)

You might want to consider a trial on the hosted version (if v4 is still an option), to see if you can import the json properly, or switch to cloud altogether and avoid the headache :slight_smile:

I’m half considering switching myself as been doing a test migration and v5 testing for the past few weeks :tired_face:

I had it on a physical machine. I’ll probably rebuild it on a VM that way backups and snapshots will be better and easier. I had a free hosted version 4 account, but I tried logging into it and it said it was gone.

I’ll keep the old one running. No file uploads to transfer. The biggest thing I don’t want to lose is the transactions…

Yes VM would be much better,

With the current one, at least export the db and copy the invoice ninja directory. That way you can do a full rebuild if you have to.
On your new VM, you can try installing a hosting control panel first, to make your life easier. Either HestiaCP or virtualmin/webmin. Easier to manage php versions, edit hostfiles etc etc.

I have used webmin in the past. Not familiar with HetiaCP

It’s just a very lightweight control panel compared to webmin anyway, most likely what we’d be using for our production v5.

Webmin is more advanced, especially if you need device monitoring and notifications etc for that particular server, without using specific monitoring software(nagios, zabbix, checkmk etc)

Best of luck with the install + migration.
I might be doing a detailed write up on the migration caviats etc in the next few weeks, so might be helpful.