From be7143b490399262fab84e219600de40f7f1c611 Mon Sep 17 00:00:00 2001 From: Thomas Arts Date: Mon, 25 May 2020 12:54:04 +0200 Subject: [PATCH 1/4] Add backup script Note that the problem of a prod-build with nested admin/admin/admin... dirs is not solved, it's a bug in rebar3 --- extensions/db-backup | 12 ++++++++++++ rebar.config | 15 ++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100755 extensions/db-backup diff --git a/extensions/db-backup b/extensions/db-backup new file mode 100755 index 000000000..a77318c9f --- /dev/null +++ b/extensions/db-backup @@ -0,0 +1,12 @@ +#!/bin/sh + +case $1 in + help) + echo "bin/server backup" + ;; + *) + ;; +esac + +# Have the server backup its database +echo $(relx_nodetool rpcterms roster_db backup "") diff --git a/rebar.config b/rebar.config index 3c9b76687..e75dc4e67 100644 --- a/rebar.config +++ b/rebar.config @@ -91,10 +91,15 @@ {vm_args, "./vm.args"}, {dev_mode, true}, {include_erts, false}, + {overlay, [{copy, "admin", "{{output_dir}}"}, + {copy, "etc", "{{output_dir}}"}, + {copy, "priv", "{{output_dir}}"}, + {copy, "asserts", "{{output_dir}}"}, + {copy, "extensions", "{{output_dir}}/bin"} + ]}, {extended_start_script, true}, - {overlay, [{copy, "admin", "./admin"}, - {copy, "etc", "./etc"}, - {copy, "./priv", "priv"}, - {copy, "asserts", "./asserts"} - ]} + % start script extensions + {extended_start_script_extensions, [ + {backup, "extensions/db-backup"} + ]} ]}. -- GitLab From efedf21337204a96ac3277a9630eeba5e548d6e5 Mon Sep 17 00:00:00 2001 From: Thomas Arts Date: Mon, 25 May 2020 14:27:33 +0200 Subject: [PATCH 2/4] Restore from backup --- extensions/db-restore | 14 ++++++++++++++ rebar.config | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100755 extensions/db-restore diff --git a/extensions/db-restore b/extensions/db-restore new file mode 100755 index 000000000..d45af4714 --- /dev/null +++ b/extensions/db-restore @@ -0,0 +1,14 @@ +#!/bin/sh + +case $1 in + help) + echo "bin/server restore MnesiaBackupFile" + ;; + *) + if [ -f $1 ]; then + echo $(relx_nodetool rpc roster_db restore $1) + else + echo File not found: $1 + fi + ;; +esac diff --git a/rebar.config b/rebar.config index e75dc4e67..81a92cfc5 100644 --- a/rebar.config +++ b/rebar.config @@ -100,6 +100,7 @@ {extended_start_script, true}, % start script extensions {extended_start_script_extensions, [ - {backup, "extensions/db-backup"} + {backup, "extensions/db-backup"}, + {restore, "extensions/db-restore"} ]} ]}. -- GitLab From c914cd18aee170cf907fae3f9cf7877a4317154b Mon Sep 17 00:00:00 2001 From: Thomas Arts Date: Mon, 25 May 2020 15:33:21 +0200 Subject: [PATCH 3/4] Update extensions/db-restore Co-authored-by: Hans Svensson --- extensions/db-restore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/db-restore b/extensions/db-restore index d45af4714..6165c4dc0 100755 --- a/extensions/db-restore +++ b/extensions/db-restore @@ -2,7 +2,7 @@ case $1 in help) - echo "bin/server restore MnesiaBackupFile" + echo "bin/server restore " ;; *) if [ -f $1 ]; then -- GitLab From e319b5df183233af9f4b2c47a060bbb86fed583d Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Mon, 25 May 2020 16:44:38 +0200 Subject: [PATCH 4/4] Fix overlay dirs in a way that `make tar` accepts as well --- rebar.config | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rebar.config b/rebar.config index 81a92cfc5..530a432ce 100644 --- a/rebar.config +++ b/rebar.config @@ -91,11 +91,11 @@ {vm_args, "./vm.args"}, {dev_mode, true}, {include_erts, false}, - {overlay, [{copy, "admin", "{{output_dir}}"}, - {copy, "etc", "{{output_dir}}"}, - {copy, "priv", "{{output_dir}}"}, - {copy, "asserts", "{{output_dir}}"}, - {copy, "extensions", "{{output_dir}}/bin"} + {overlay, [{copy, "admin", "."}, + {copy, "etc", "."}, + {copy, "priv", "."}, + {copy, "asserts", "."}, + {copy, "extensions", "./bin"} ]}, {extended_start_script, true}, % start script extensions -- GitLab