mirror of
https://github.com/tiennm99/DocsGPT.git
synced 2026-10-13 16:14:10 +00:00
feat: docsgpt backup and docsgpt restore
`docsgpt backup` writes one archive holding a pg_dump of the database, a tar of each data volume and a manifest of what it came from; `docsgpt restore` puts it back over an install. The settings file is left out unless --with-settings asks for it, since it holds the install's secrets, and a backup taken with a newer DocsGPT is refused without --force. The volume tars go through the image the install already runs, so a backup pulls nothing extra, and compose calls can now redirect stdout and stdin so the dump never passes through this process.
This commit is contained in:
1 parent
4abd2c0c9f
commit
fe68fec69e
9 files changed
+489
-7
No files matched your search
@@ -230,6 +230,18 @@ def _add_deploy_commands(commands) -> None:
|
||||
uninstall.add_argument("-y", "--yes", action="store_true", help="do not ask for confirmation")
|
||||
uninstall.add_argument("--purge", action="store_true", help="also delete the settings and all data")
|
||||
|
||||
backup = stack_command("backup", "backup", "write a backup of the database and the uploaded data")
|
||||
backup.add_argument("--out", help="directory for the archive (default: <stack>/backups)")
|
||||
backup.add_argument("--with-settings", action="store_true",
|
||||
help="include .env in the archive; it holds this install's secrets")
|
||||
|
||||
restore = stack_command("restore", "restore", "restore a backup over this install")
|
||||
restore.add_argument("archive", help="the .tar.gz written by `docsgpt backup`")
|
||||
restore.add_argument("-y", "--yes", action="store_true", help="do not ask for confirmation")
|
||||
restore.add_argument("--force", action="store_true", help="restore a backup taken with a newer DocsGPT")
|
||||
restore.add_argument("--timeout", type=int, default=300,
|
||||
help="seconds to wait for the API afterwards (default: 300)")
|
||||
|
||||
env = stack_command("env", "env", "show, get or set the stack's settings")
|
||||
env_actions = env.add_subparsers(dest="env_action", metavar="<action>")
|
||||
get = env_actions.add_parser("get", help="print one setting")
|
||||
|
||||
Reference in new issue
Block a user