Unable to restore from previous database #2150

Closed
opened 2026-02-05 03:06:52 +03:00 by OVERLORD · 7 comments
Owner

Originally created by @eferreira2 on GitHub (Mar 10, 2021).

We recently had a security issue with our bookstack server that required me to rebuild it from the ground up on the latest version.

I followed the instructions provided in this article:
https://www.bookstackapp.com/docs/admin/backup-restore/

However, it has not restored our bookstack instance to a usable state. I am able to log in with an existing user account but all I get is a completely blank webpage.

2021-03-09 16_58_20-Window

Originally created by @eferreira2 on GitHub (Mar 10, 2021). We recently had a security issue with our bookstack server that required me to rebuild it from the ground up on the latest version. I followed the instructions provided in this article: https://www.bookstackapp.com/docs/admin/backup-restore/ However, it has not restored our bookstack instance to a usable state. I am able to log in with an existing user account but all I get is a completely blank webpage. ![2021-03-09 16_58_20-Window](https://user-images.githubusercontent.com/60720273/110543830-cf1d9800-80f8-11eb-8349-5cbfbc741634.png)
Author
Owner

@ssddanbrown commented on GitHub (Mar 10, 2021):

@eferreira2 A blank white page often indicates a permissions problem, I'd start there.

Otherwise check your storage/logs/laravel.log file in addition to php/webserver logs on your system for clues. To be able to provide any further assistance I'd need details of your environment & setup (Operating system, webserver, install method etc..)

@ssddanbrown commented on GitHub (Mar 10, 2021): @eferreira2 A blank white page often indicates a permissions problem, I'd start there. Otherwise check your `storage/logs/laravel.log` file in addition to php/webserver logs on your system for clues. To be able to provide any further assistance I'd need details of your environment & setup (Operating system, webserver, install method etc..)
Author
Owner

@eferreira2 commented on GitHub (Mar 10, 2021):

Permissions shouldn't be an issue since I chmod'd everything to 777 out of
sheer frustration. Here's what I get now.

Please use the argument -v to see more details.
administrator@tri-bookstack:/var/www/bookstack$ sudo php artisan migrate -v


  • Application In Production!     *
    

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

yes

Migrating: 2019_08_17_140214_add_user_invites_table

Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or
view already exists: 1050 Table 'user_invites' already exists (SQL: create
table user_invites (id int unsigned not null auto_increment primary
key, user_id int not null, token varchar(191) not null, created_at
timestamp null, updated_at timestamp null) default character set utf8mb4
collate 'utf8mb4_unicode_ci')

at
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query,
we'll format the error
666| // message to include the bindings with SQL, which will
make this exception a
667| // lot more helpful to the developer instead of just the
database's errors.
668| catch (Exception $e) {

669| throw new QueryException(
670| $query, $this->prepareBindings($bindings), $e
671| );
672| }
673|

Exception trace:

1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42S01]: Base table or
view already exists: 1050 Table 'user_invites' already exists")

/var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:131

2 PDOException::("SQLSTATE[42S01]: Base table or view already exists:
1050 Table 'user_invites' already exists")

/var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129

3 PDOStatement::execute()

/var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129

4 Doctrine\DBAL\Driver\PDOStatement::execute()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:463

5 Illuminate\Database\Connection::Illuminate\Database{closure}()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:662

6 Illuminate\Database\Connection::runQueryCallback()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:629

7 Illuminate\Database\Connection::run()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:464

8 Illuminate\Database\Connection::statement()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php:97

9 Illuminate\Database\Schema\Blueprint::build()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:290

10 Illuminate\Database\Schema\Builder::build()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:167

11 Illuminate\Database\Schema\Builder::create()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:261

12 Illuminate\Support\Facades\Facade::__callStatic()

/var/www/bookstack/database/migrations/2019_08_17_140214_add_user_invites_table.php:21

13 AddUserInvitesTable::up()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:392

14
Illuminate\Database\Migrations\Migrator::Illuminate\Database\Migrations{closure}()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:401

15 Illuminate\Database\Migrations\Migrator::runMigration()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:200

16 Illuminate\Database\Migrations\Migrator::runUp()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:165

17 Illuminate\Database\Migrations\Migrator::runPending()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:110

18 Illuminate\Database\Migrations\Migrator::run()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71

19 Illuminate\Database\Console\Migrations\MigrateCommand::handle()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36

20 Illuminate\Container\BoundMethod::Illuminate\Container{closure}()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

21 Illuminate\Container\Util::unwrapIfClosure()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93

22 Illuminate\Container\BoundMethod::callBoundMethod()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:37

23 Illuminate\Container\BoundMethod::call()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

24 Illuminate\Container\Container::call()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php:134

25 Illuminate\Console\Command::execute()
/var/www/bookstack/vendor/symfony/console/Command/Command.php:255

26 Symfony\Component\Console\Command\Command::run()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php:121

27 Illuminate\Console\Command::run()
/var/www/bookstack/vendor/symfony/console/Application.php:1009

28 Symfony\Component\Console\Application::doRunCommand()
/var/www/bookstack/vendor/symfony/console/Application.php:273

29 Symfony\Component\Console\Application::doRun()
/var/www/bookstack/vendor/symfony/console/Application.php:149

30 Symfony\Component\Console\Application::run()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Application.php:93

31 Illuminate\Console\Application::run()

/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131

32 Illuminate\Foundation\Console\Kernel::handle()
/var/www/bookstack/artisan:37

On Tue, Mar 9, 2021 at 5:17 PM Dan Brown notifications@github.com wrote:

@eferreira2 https://github.com/eferreira2 A blank white page often
indicates a permissions problem, I'd start there.

Otherwise check your storage/logs/laravel.log file in addition to
php/webserver logs on your system for clues. To be able to provide any
further assistance I'd need details of your environment & setup (Operating
system, webserver, install method etc..)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/BookStackApp/BookStack/issues/2628#issuecomment-794529239,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOPIJEO6I4Q2TWFALWKDJHDTC2M55ANCNFSM4Y4SCMOQ
.

@eferreira2 commented on GitHub (Mar 10, 2021): Permissions shouldn't be an issue since I chmod'd everything to 777 out of sheer frustration. Here's what I get now. Please use the argument -v to see more details. administrator@tri-bookstack:/var/www/bookstack$ sudo php artisan migrate -v ************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migrating: 2019_08_17_140214_add_user_invites_table Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'user_invites' already exists (SQL: create table `user_invites` (`id` int unsigned not null auto_increment primary key, `user_id` int not null, `token` varchar(191) not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') at /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669 665| // If an exception occurs when attempting to run a query, we'll format the error 666| // message to include the bindings with SQL, which will make this exception a 667| // lot more helpful to the developer instead of just the database's errors. 668| catch (Exception $e) { > 669| throw new QueryException( 670| $query, $this->prepareBindings($bindings), $e 671| ); 672| } 673| Exception trace: 1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'user_invites' already exists") /var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:131 2 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'user_invites' already exists") /var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129 3 PDOStatement::execute() /var/www/bookstack/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129 4 Doctrine\DBAL\Driver\PDOStatement::execute() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:463 5 Illuminate\Database\Connection::Illuminate\Database\{closure}() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:662 6 Illuminate\Database\Connection::runQueryCallback() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:629 7 Illuminate\Database\Connection::run() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:464 8 Illuminate\Database\Connection::statement() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php:97 9 Illuminate\Database\Schema\Blueprint::build() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:290 10 Illuminate\Database\Schema\Builder::build() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:167 11 Illuminate\Database\Schema\Builder::create() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:261 12 Illuminate\Support\Facades\Facade::__callStatic() /var/www/bookstack/database/migrations/2019_08_17_140214_add_user_invites_table.php:21 13 AddUserInvitesTable::up() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:392 14 Illuminate\Database\Migrations\Migrator::Illuminate\Database\Migrations\{closure}() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:401 15 Illuminate\Database\Migrations\Migrator::runMigration() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:200 16 Illuminate\Database\Migrations\Migrator::runUp() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:165 17 Illuminate\Database\Migrations\Migrator::runPending() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:110 18 Illuminate\Database\Migrations\Migrator::run() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 19 Illuminate\Database\Console\Migrations\MigrateCommand::handle() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36 20 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Util.php:37 21 Illuminate\Container\Util::unwrapIfClosure() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93 22 Illuminate\Container\BoundMethod::callBoundMethod() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:37 23 Illuminate\Container\BoundMethod::call() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Container/Container.php:590 24 Illuminate\Container\Container::call() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php:134 25 Illuminate\Console\Command::execute() /var/www/bookstack/vendor/symfony/console/Command/Command.php:255 26 Symfony\Component\Console\Command\Command::run() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Command.php:121 27 Illuminate\Console\Command::run() /var/www/bookstack/vendor/symfony/console/Application.php:1009 28 Symfony\Component\Console\Application::doRunCommand() /var/www/bookstack/vendor/symfony/console/Application.php:273 29 Symfony\Component\Console\Application::doRun() /var/www/bookstack/vendor/symfony/console/Application.php:149 30 Symfony\Component\Console\Application::run() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Console/Application.php:93 31 Illuminate\Console\Application::run() /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131 32 Illuminate\Foundation\Console\Kernel::handle() /var/www/bookstack/artisan:37 On Tue, Mar 9, 2021 at 5:17 PM Dan Brown <notifications@github.com> wrote: > @eferreira2 <https://github.com/eferreira2> A blank white page often > indicates a permissions problem, I'd start there. > > Otherwise check your storage/logs/laravel.log file in addition to > php/webserver logs on your system for clues. To be able to provide any > further assistance I'd need details of your environment & setup (Operating > system, webserver, install method etc..) > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/BookStackApp/BookStack/issues/2628#issuecomment-794529239>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AOPIJEO6I4Q2TWFALWKDJHDTC2M55ANCNFSM4Y4SCMOQ> > . >
Author
Owner

@eferreira2 commented on GitHub (Mar 10, 2021):

Upon further investigation this appears to be a database schema issue between v.28 and the latest?

From SQL backup
DROP TABLE IF EXISTS activities;
/*!40101 SET @saved_cs_client = @@character_set_client /;
/
!40101 SET character_set_client = utf8 /;
CREATE TABLE activities (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
key varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
extra text COLLATE utf8mb4_unicode_ci NOT NULL,
book_id int(11) NOT NULL,
user_id int(11) NOT NULL,
entity_id int(11) NOT NULL,
entity_type varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
created_at timestamp NULL DEFAULT NULL,
updated_at timestamp NULL DEFAULT NULL,
PRIMARY KEY (id),
KEY activities_book_id_index (book_id),
KEY activities_user_id_index (user_id),
KEY activities_entity_id_index (entity_id)
) ENGINE=InnoDB AUTO_INCREMENT=853 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/
!40101 SET character_set_client = @saved_cs_client */;

From clean database on latest bookstack
image

@eferreira2 commented on GitHub (Mar 10, 2021): Upon further investigation this appears to be a database schema issue between v.28 and the latest? **From SQL backup** DROP TABLE IF EXISTS `activities`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `activities` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, **`key` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,** `extra` text COLLATE utf8mb4_unicode_ci NOT NULL, `book_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `entity_id` int(11) NOT NULL, `entity_type` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `activities_book_id_index` (`book_id`), KEY `activities_user_id_index` (`user_id`), KEY `activities_entity_id_index` (`entity_id`) ) ENGINE=InnoDB AUTO_INCREMENT=853 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; **From clean database on latest bookstack** ![image](https://user-images.githubusercontent.com/60720273/110640757-33833a80-817f-11eb-9670-05a1afdc12f3.png)
Author
Owner

@eferreira2 commented on GitHub (Mar 10, 2021):

Even restoring our old database and manually upgrading results in the error above. I really need some help here.

@eferreira2 commented on GitHub (Mar 10, 2021): Even restoring our old database and manually upgrading results in the error above. I really need some help here.
Author
Owner

@ssddanbrown commented on GitHub (Mar 10, 2021):

I wouldn't worry about schema differences between your old system and a fresh one, Any differences should be applied when re-running the migrations.

Quick question, Are you migrating the new instance first before restoring your data? If so, don't do this. Restore your backup into the DB without migrating first then migrate afterwards.

@ssddanbrown commented on GitHub (Mar 10, 2021): I wouldn't worry about schema differences between your old system and a fresh one, Any differences should be applied when re-running the migrations. Quick question, Are you migrating the new instance first before restoring your data? If so, don't do this. Restore your backup into the DB without migrating first then migrate afterwards.
Author
Owner

@eferreira2 commented on GitHub (Mar 11, 2021):

I was restoring before migrating. The issue is that the upgrade kept hanging because it wouldn't delete specific tables in the database and kept erroring because of it. The api_tokens and user_views tables had to be manually deleted before the update would succeed.

@eferreira2 commented on GitHub (Mar 11, 2021): I was restoring before migrating. The issue is that the upgrade kept hanging because it wouldn't delete specific tables in the database and kept erroring because of it. The api_tokens and user_views tables had to be manually deleted before the update would succeed.
Author
Owner

@gchamon commented on GitHub (May 27, 2021):

I know this is old, but I just came across this issue and I forced bookstack to skip the 2019_08_17_140214_add_user_invites_table migration by adding it to the migrations table manually

INSERT INTO bookstackapp.migrations (id,migration,batch)
	VALUES (43,'2019_08_17_140214_add_user_invites_table',1);
@gchamon commented on GitHub (May 27, 2021): I know this is old, but I just came across this issue and I forced bookstack to skip the `2019_08_17_140214_add_user_invites_table` migration by adding it to the migrations table manually ```sql INSERT INTO bookstackapp.migrations (id,migration,batch) VALUES (43,'2019_08_17_140214_add_user_invites_table',1); ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#2150