доработка db-export

This commit is contained in:
2026-04-03 00:10:19 +04:00
parent c9b1100e3a
commit 0a3d3b6afa
+18 -5
View File
@@ -43,6 +43,15 @@ require_running_db() {
fi fi
} }
# Returns space-separated list of user databases (excludes MySQL system schemas)
get_user_databases() {
docker compose exec -T ac-database bash -lc \
"mysql -h 127.0.0.1 -uroot -p\"\$MYSQL_ROOT_PASSWORD\" -N -s information_schema" \
<<<"SELECT schema_name FROM schemata
WHERE schema_name NOT IN ('mysql','information_schema','performance_schema','sys')
ORDER BY schema_name;"
}
# ── argument parsing ────────────────────────────────────────────────────────── # ── argument parsing ──────────────────────────────────────────────────────────
while (($#)); do while (($#)); do
@@ -73,13 +82,17 @@ fi
mkdir -p "$(dirname "$OUTPUT_FILE")" mkdir -p "$(dirname "$OUTPUT_FILE")"
log "exporting all databases → $OUTPUT_FILE" log "discovering user databases..."
databases="$(get_user_databases | tr '\n' ' ' | xargs)"
[[ -z "$databases" ]] && die "no user databases found"
log "databases: $databases"
log "exporting → $OUTPUT_FILE"
log "this may take a few minutes for large worlds..." log "this may take a few minutes for large worlds..."
if [[ "$COMPRESS" -eq 1 ]]; then if [[ "$COMPRESS" -eq 1 ]]; then
docker compose exec -T ac-database bash -lc \ docker compose exec -T ac-database bash -lc \
"mysqldump -uroot -p\"\$MYSQL_ROOT_PASSWORD\" \ "mysqldump -h 127.0.0.1 -uroot -p\"\$MYSQL_ROOT_PASSWORD\" \
--all-databases \ --databases $databases \
--add-drop-database \ --add-drop-database \
--single-transaction \ --single-transaction \
--quick \ --quick \
@@ -89,8 +102,8 @@ if [[ "$COMPRESS" -eq 1 ]]; then
| gzip -6 > "$OUTPUT_FILE" | gzip -6 > "$OUTPUT_FILE"
else else
docker compose exec -T ac-database bash -lc \ docker compose exec -T ac-database bash -lc \
"mysqldump -uroot -p\"\$MYSQL_ROOT_PASSWORD\" \ "mysqldump -h 127.0.0.1 -uroot -p\"\$MYSQL_ROOT_PASSWORD\" \
--all-databases \ --databases $databases \
--add-drop-database \ --add-drop-database \
--single-transaction \ --single-transaction \
--quick \ --quick \