From b272acf2929d28e15417cb6ef3cee69a50c74b8c Mon Sep 17 00:00:00 2001 From: Thies Lennart Alff Date: Fri, 3 Jan 2025 21:12:43 +0100 Subject: [PATCH] work around nasty characters as part of the database password --- forgejo.json.sample | 2 -- forgejo_backup | 10 ++++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/forgejo.json.sample b/forgejo.json.sample index f4b0abd..0bdfd22 100644 --- a/forgejo.json.sample +++ b/forgejo.json.sample @@ -9,8 +9,6 @@ "TIME_FORMAT": "utcnow:%Y-%m-%d_%H:%M:%S", "REPO_SUBDIR": "forgejo", "MYSQL_DB": "database name", - "MYSQL_USER": "database user required for dumping the database", - "MYSQL_PASSWORD": "password required for dumping the database " }, "remotes": [ { diff --git a/forgejo_backup b/forgejo_backup index 77b2382..27c3cd8 100755 --- a/forgejo_backup +++ b/forgejo_backup @@ -55,11 +55,13 @@ class ForgejoManager(backup_manager.BackupManager): return True def dump_database(self): - password = self._common["MYSQL_PASSWORD"] - user = self._common["MYSQL_USER"] db = self._common["MYSQL_DB"] - - cmd = f"docker compose exec -i --user 1000:1000 db mariadb-dump --single-transaction --default-character-set=utf8mb4 -h localhost -u {user} --password={password} {db} > mysql/forgejo.sql" + # we assume that a [client] conf as default for user and password is mounted inside the mysql directory of the container + # e.g.: + # [client] + # user= + # password= + cmd = f"docker compose exec -it db sh -c 'mariadb-dump --defaults-extra-file=/var/lib/mysql/forgejo-mysql.conf {db} > /var/lib/mysql/forgejo.sql'" try: result = subprocess.run( cmd,