доработка db-export
This commit is contained in:
+18
-5
@@ -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 \
|
||||||
|
|||||||
Reference in New Issue
Block a user