This repository has been archived by the owner on Mar 24, 2023. It is now read-only.
forked from home-assistant/addons
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add lock capabilities during snapshot (home-assistant#2063)
* Add service which locks database tables Add an additional service which helds a lock on all database tables. This allows to safely snapshot the database files. * Lock database during snapshot operation Fixes: home-assistant#1353 * Update config.json * Update CHANGELOG.md Co-authored-by: Pascal Vizeli <[email protected]>
- Loading branch information
Showing
6 changed files
with
36 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#!/usr/bin/with-contenv bashio | ||
# ============================================================================== | ||
# Start MariaDB client to lock tables (for snapshots) | ||
# ============================================================================== | ||
|
||
bashio::log.info "Lock tables using mariadb client..." | ||
|
||
exec 4> >(mariadb) | ||
MARIADB_PID=$! | ||
|
||
echo "FLUSH TABLES WITH READ LOCK;" >&4 | ||
|
||
# Notify s6 about successful service start | ||
echo "" >&3 | ||
|
||
bashio::log.info "MariaDB tables locked." | ||
|
||
# Register stop | ||
function stop_mariadb_client() { | ||
echo "UNLOCK TABLES;" >&4 | ||
bashio::log.info "MariaDB tables unlocked." | ||
exec 4>&- | ||
# Successful exit, avoid wait exit status to propagate | ||
exit 0 | ||
} | ||
trap "stop_mariadb_client" SIGTERM SIGHUP | ||
|
||
wait "${MARIADB_PID}" |