Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug Report]: db version issues when upgrading from v21.12.2 to v21.12.3 #3209

Closed
ogie15 opened this issue Jan 28, 2022 · 5 comments
Closed
Labels

Comments

@ogie15
Copy link

ogie15 commented Jan 28, 2022

Describe the Bug

When upgrading/setting up a new instance of Bookstack of v21.12.3 and restoring my Bookstack v21.12.2 instance I get an error page
I enabled debug on the server and got the error below

Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mfa_enforced' in 'where clause' (SQL: select exists(select * from `roles` inner join `role_user` on `roles`.`id` = `role_user`.`role_id` where `role_user`.`user_id` = 17 and `mfa_enforced` = 1) as `exists`)

Steps to Reproduce

Create a new instance of Bookstack v21.12.3
Imported my DB and backup files from v21.12.2
Try to log in as a user in the previous environment
I get an error

Expected Behaviour

Login with out errors without

Screenshots or Additional Context

Note: the DB backup was originally from Bookstack v0.30.3
This works perfectly on restoring to v21.12.2 without any issues.
But after installing and restoring to v21.12.3 I get the error below in debug mode (without debug I get the normal Bookstack error page):

image

STACK TRACE BELOW:

#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(672): Illuminate\Database\Connection->runQueryCallback()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(376): Illuminate\Database\Connection->run()
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2707): Illuminate\Database\Connection->select()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1655): Illuminate\Database\Query\Builder->exists()
#4 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): Illuminate\Database\Eloquent\Builder->__call()
#5 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(52): Illuminate\Database\Eloquent\Relations\Relation->forwardCallTo()
#6 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php(481): Illuminate\Database\Eloquent\Relations\Relation->forwardDecoratedCallTo()
#7 /var/www/bookstack/app/Auth/Access/Mfa/MfaSession.php(34): Illuminate\Database\Eloquent\Relations\Relation->__call()
#8 /var/www/bookstack/app/Auth/Access/Mfa/MfaSession.php(15): BookStack\Auth\Access\Mfa\MfaSession->userRoleEnforcesMfa()
#9 /var/www/bookstack/app/Auth/Access/LoginService.php(134): BookStack\Auth\Access\Mfa\MfaSession->isRequiredForUser()
#10 /var/www/bookstack/app/Auth/Access/LoginService.php(37): BookStack\Auth\Access\LoginService->needsMfaVerification()
#11 /var/www/bookstack/app/Auth/Access/LoginService.php(159): BookStack\Auth\Access\LoginService->login()
#12 /var/www/bookstack/app/Http/Controllers/Auth/LoginController.php(151): BookStack\Auth\Access\LoginService->attempt()
#13 /var/www/bookstack/app/Http/Controllers/Auth/LoginController.php(120): BookStack\Http\Controllers\Auth\LoginController->attemptLogin()
#14 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): BookStack\Http\Controllers\Auth\LoginController->login()
#15 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#16 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\Routing\ControllerDispatcher->dispatch()
#17 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#18 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Route->run()
#19 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#20 /var/www/bookstack/app/Http/Middleware/CheckGuard.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#21 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\CheckGuard->handle()
#22 /var/www/bookstack/app/Http/Middleware/RedirectIfAuthenticated.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#23 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\RedirectIfAuthenticated->handle()
#24 /var/www/bookstack/app/Http/Middleware/Localization.php(82): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\Localization->handle()
#26 /var/www/bookstack/app/Http/Middleware/RunThemeActions.php(26): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\RunThemeActions->handle()
#28 /var/www/bookstack/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\CheckEmailConfirmed->handle()
#30 /var/www/bookstack/app/Http/Middleware/PreventAuthenticatedResponseCaching.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\PreventAuthenticatedResponseCaching->handle()
#32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#43 /var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\ApplyCspRules->handle()
#45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#46 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\Pipeline\Pipeline->then()
#47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\Routing\Router->runRouteWithinStack()
#48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\Routing\Router->runRoute()
#49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\Routing\Router->dispatchToRoute()
#50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\Routing\Router->dispatch()
#51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#53 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\Http\Middleware\TrustProxies->handle()
#54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\TrustProxies->handle()
#55 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#58 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#59 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\Pipeline\Pipeline->then()
#64 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#65 /var/www/bookstack/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle()
#66 {main}

Exact BookStack Version

v21.12.3

PHP Version

7.4.27

Hosting Environment

Ubuntu 21.10 (GNU/Linux 5.13.0-27-generic x86_64)

@ssddanbrown
Copy link
Member

Hi @ogie15,
There were no database changes between v21.12.2 and v21.12.3, so I think the issue lies elsewhere.
You mentioned restoring an old database backup, Keep in mind that restoring the database into a new version of BookStack must be done without running database migrations (for the new instance) first.
So the order is:

  • Setup new instance (Without running migrations) files.
  • Restore old database files.
  • Run upgrade commands.

If you've used the installation script for the new version instance, then this script will run database migrations. You'd have to remove the database tables before restoring your old database backup.

If you're sure the above scenario does not apply to you, please run the below command from within you BookStack installation folder and let me know the command line output:

php artisan migrate

@ogie15
Copy link
Author

ogie15 commented Jan 28, 2022

I have cleared out my v21.12.3 version and installed the v21.12.2

for testing purposes, I might do that for you

but I followed the normal process of installation

I did set up a fresh server
modified the installation script and commented out the PHP artisan migrate --force part of the script
saved then ran the installation script
copied my backup file to the /var/www/bookstack directory
restored them and then ran the PHP artisan cmd again
only to login and have that error I pasted

@ssddanbrown
Copy link
Member

@ogie15 What do you see (On the command line) when you run php artisan migrate? Can you share the command line output?

@ogie15
Copy link
Author

ogie15 commented Jan 28, 2022

I have already cleared that server instance and re-installed v21.12.2

I will try to reproduce the issue again on v21.12.3 and give you feedback

@ssddanbrown
Copy link
Member

Will therefore close this but feel free to still comment or re-raise if a specific issue can be found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

2 participants