backup-docker-to-local 1.2.0__tar.gz → 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {backup_docker_to_local-1.2.0/src/backup_docker_to_local.egg-info → backup_docker_to_local-1.3.0}/PKG-INFO +1 -1
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/pyproject.toml +1 -1
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0/src/backup_docker_to_local.egg-info}/PKG-INFO +1 -1
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/app.py +1 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/cli.py +1 -1
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/db.py +4 -4
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/seed/__main__.py +21 -11
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/LICENSE +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/README.md +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/setup.cfg +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/backup_docker_to_local.egg-info/SOURCES.txt +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/backup_docker_to_local.egg-info/dependency_links.txt +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/backup_docker_to_local.egg-info/entry_points.txt +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/backup_docker_to_local.egg-info/requires.txt +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/backup_docker_to_local.egg-info/top_level.txt +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/__init__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/__init__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/__main__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/compose.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/docker.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/shell.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/volume.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/__init__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/__main__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/__init__.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/mariadb.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/postgres.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/files.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/paths.py +0 -0
- {backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/run.py +0 -0
|
@@ -52,7 +52,9 @@ def _atomic_write_cmd(cmd: str, out_file: str) -> None:
|
|
|
52
52
|
execute_shell_command(f"mv {tmp} {out_file}")
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
def fallback_pg_dumpall(
|
|
55
|
+
def fallback_pg_dumpall(
|
|
56
|
+
container: str, username: str, password: str, out_file: str
|
|
57
|
+
) -> None:
|
|
56
58
|
"""
|
|
57
59
|
Perform a full Postgres cluster dump using pg_dumpall.
|
|
58
60
|
"""
|
|
@@ -103,9 +105,7 @@ def backup_database(
|
|
|
103
105
|
"'*' is currently only supported for Postgres."
|
|
104
106
|
)
|
|
105
107
|
|
|
106
|
-
cluster_file = os.path.join(
|
|
107
|
-
out_dir, f"{instance_name}.cluster.backup.sql"
|
|
108
|
-
)
|
|
108
|
+
cluster_file = os.path.join(out_dir, f"{instance_name}.cluster.backup.sql")
|
|
109
109
|
fallback_pg_dumpall(container, user, password, cluster_file)
|
|
110
110
|
produced = True
|
|
111
111
|
continue
|
|
@@ -7,10 +7,11 @@ import re
|
|
|
7
7
|
import sys
|
|
8
8
|
import pandas as pd
|
|
9
9
|
from typing import Optional
|
|
10
|
-
|
|
10
|
+
from pandas.errors import EmptyDataError
|
|
11
11
|
|
|
12
12
|
DB_NAME_RE = re.compile(r"^[a-zA-Z0-9_][a-zA-Z0-9_-]*$")
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
def _validate_database_value(value: Optional[str], *, instance: str) -> str:
|
|
15
16
|
v = (value or "").strip()
|
|
16
17
|
if v == "":
|
|
@@ -31,6 +32,11 @@ def _validate_database_value(value: Optional[str], *, instance: str) -> str:
|
|
|
31
32
|
)
|
|
32
33
|
return v
|
|
33
34
|
|
|
35
|
+
|
|
36
|
+
def _empty_df() -> pd.DataFrame:
|
|
37
|
+
return pd.DataFrame(columns=["instance", "database", "username", "password"])
|
|
38
|
+
|
|
39
|
+
|
|
34
40
|
def check_and_add_entry(
|
|
35
41
|
file_path: str,
|
|
36
42
|
instance: str,
|
|
@@ -48,17 +54,21 @@ def check_and_add_entry(
|
|
|
48
54
|
database = _validate_database_value(database, instance=instance)
|
|
49
55
|
|
|
50
56
|
if os.path.exists(file_path):
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
try:
|
|
58
|
+
df = pd.read_csv(
|
|
59
|
+
file_path,
|
|
60
|
+
sep=";",
|
|
61
|
+
dtype=str,
|
|
62
|
+
keep_default_na=False,
|
|
63
|
+
)
|
|
64
|
+
except EmptyDataError:
|
|
65
|
+
print(
|
|
66
|
+
f"WARNING: databases.csv exists but is empty: {file_path}. Creating header columns.",
|
|
67
|
+
file=sys.stderr,
|
|
68
|
+
)
|
|
69
|
+
df = _empty_df()
|
|
57
70
|
else:
|
|
58
|
-
df =
|
|
59
|
-
columns=["instance", "database", "username", "password"]
|
|
60
|
-
)
|
|
61
|
-
|
|
71
|
+
df = _empty_df()
|
|
62
72
|
mask = (df["instance"] == instance) & (df["database"] == database)
|
|
63
73
|
|
|
64
74
|
if mask.any():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/__init__.py
RENAMED
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/backup/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/__init__.py
RENAMED
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/__main__.py
RENAMED
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/__init__.py
RENAMED
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/mariadb.py
RENAMED
|
File without changes
|
{backup_docker_to_local-1.2.0 → backup_docker_to_local-1.3.0}/src/baudolo/restore/db/postgres.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|