mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 03:09:44 +03:00
Routine Bookstack backup/restore application #3519
Closed
opened 2026-02-05 06:57:30 +03:00 by OVERLORD
·
7 comments
No Branch/Tag Specified
development
further_theme_development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
🐕 Support
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3519
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @cascmptrski on GitHub (Feb 18, 2023).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
We have built an emergency "to-go" copy of our primary BookStack system on a laptop. Using the Backup/Restore instructions the initial build went fine and after a few changes to the Apache configuration and the .env file everything worked/works fine. We would like to keep this current by updating the database and files weekly so that in an emergency we have a very recent copy of the information.
Attempting to do the restore on top of the previous to-go copy did not go well and will not run. While we can remove everything from the bookstack home folder and start over to get to an updated copy it seems as though there should be an easier way to do this. We are replacing the bookstack database and the backed up files, yet artisan seems to have information stored somewhere that is not being updated and as a result crashes the system after the upgrade and the post-restore php artisan migrate fails with a pre-existing "requirements" table.
So the question is what else should be either captured in the backup process and/or removed & restored on the target system for the update of the functioning to-go system to proceed properly?
Thanks for any assistance,
-CAS
Exact BookStack Version
23.01.1
Log Content
PHP Version
8.1
Hosting Environment
Ubuntu 22.04 New install
@ssddanbrown commented on GitHub (Feb 19, 2023):
The log provided does not reflect migrating an existing BookStack database, it appears to be starting fresh yet within a database environment where tables already exist.
Ideally the database dump needs to be restored into an empty database, before being migrated on the same version or later of BookStack. Then migrating should only show a few
Migrating:lines when the version of BookStack is greater.@cascmptrski commented on GitHub (Feb 19, 2023):
So I only provided the artisan migrate part of the log from the migration. So perhaps I was not clear. The system being "upgraded" was a copy of the primary site made by creating a backup and then restoring the database and files to a clean new instance of bookstack running on a laptop. As the working version of this database now has a lot of new content, the desire was to update the content on the laptop. Again, we did a backup of the original database. On the laptop, the database and files were restored on top of the existing installation after removing and restoring from backup the files in the bookstack home directory. Everything ran fine until the "php artisan migrate" step which produced the error message, so that was the only part of the output that I provided.
As noted above, I am sure that I can blow away the entire bookstack directory and reload the system from scratch for the restore, but I was hoping for a way to only update the files and database on the laptop, since we would like to update the laptop copy weekly to keep it current.
Thanks
@ssddanbrown commented on GitHub (Feb 19, 2023):
I understand your scenario and what you're trying to do. The log you provided was fine but reflected issues in the process.
You can't restore the database on top of the existing installation safely. The best approach is to restore the database backup to an empty database instance.
Something else is not fine in this process, before your
artisan migratestep, Possibly database references across the env files becoming mixed. This is an assumption based upon the migration logs showing the migration process starting from fresh, instead of just upgrading an existing database.For the database, you'll need to restore your dump into an empty environment instead of updating/overwriting. So you'll maybe have to drop+create the database as part of your script/process. I can't imagine this would be a problem, since you'd already have the full DB dump, it's not like you're doing a partial transfer, unless you were hoping to somehow also retain changes made in your laptop environment.
@towerplease commented on GitHub (Feb 23, 2023):
Is there currently a way to move a LAMP-based install to a docker-based one?
As i read the instructions, it is needed to interact with php/artisan, this is not possible in docker, right?
I am currently restructuring my entire homelab and i want to dockerize as much as possible, to have a cleaner and less maintanance-heavy environment.
@ssddanbrown commented on GitHub (Feb 23, 2023):
@towerplease I've just published this video which includes the steps to run artisan commands within a container, and the steps for restoring into a container environment. You'll need to do a little mapping/moving between the old image/attachments files & folders and the new docker volume locations, but all perfectly doable. You'll also need a database dump from the current LAMP environment, which is done in the video but in the context of the container environment. We do otherwise have general guidance for this in the docs.
@towerplease commented on GitHub (Feb 23, 2023):
@ssddanbrown thank you, I will look into that!
@cascmptrski commented on GitHub (Feb 23, 2023):
@ssddanbrown Thanks for the response. I did solve the problem and you are correct. This works if you drop and re-create the database. The problem is that the "references" table/view does not get included in the backup, but still exists in the database. Dropping the database, recreating it and restoring to the new database allow a full restore and migration without any problems. I built a script to handle all the steps in the restore so it now runs very quickly.
Thanks to all for the assistance, and I will also look into the Docker option as that may prove to be the easiest solution in the long run for both the main system and the "bugout" backup version.
Thanks
-CAS