mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
add helper ynh_psql_dump_all_user_dbs()
This commit is contained in:
parent
6e3f9f72ee
commit
aa81c5d53c
1 changed files with 35 additions and 0 deletions
|
@ -143,6 +143,41 @@ ynh_psql_dump_db() {
|
||||||
sudo --login --user=postgres pg_dump "$database"
|
sudo --login --user=postgres pg_dump "$database"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Dump all existing PostgreSQL databases associated with a given user
|
||||||
|
#
|
||||||
|
# usage: ynh_psql_dump_all_user_dbs --db_user=db_user [--app=app]
|
||||||
|
# | arg: -u, --db_user= - the PostgreSQL role/user of which to remove all owned databases
|
||||||
|
# | arg: -a, --app= - the application id to tag the dump with
|
||||||
|
#
|
||||||
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
|
ynh_psql_dump_all_user_dbs() {
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=ua
|
||||||
|
local -A args_array=([u]=db_user= [a]=app=)
|
||||||
|
local db_user
|
||||||
|
local app
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
app="${app:-}"
|
||||||
|
|
||||||
|
local dbs_to_dump=$(ynh_psql_list_user_dbs $db_user)
|
||||||
|
if [ -n "$dbs_to_dump" ]; then # Check that the list of database(s) is not empty
|
||||||
|
|
||||||
|
local db_name
|
||||||
|
for db_name in $dbs_to_dump # Iterate through the list of database(s) to dump. Note: this would fail in case databases names would contain space character or characters such as "*". IFS parsing method would then be required.
|
||||||
|
do
|
||||||
|
if ynh_psql_database_exists --database=$db_name; then # Check if the database exists
|
||||||
|
ynh_psql_dump_db $db_name > "$app-$db_name-dump.sql" # Dump the database to a filename format of app-db_name-dump.sql, or of db_name-dump.sql if app parameter was not supplied
|
||||||
|
ynh_print_info --message="Dumped database $db_name associated to role $db_user"
|
||||||
|
else
|
||||||
|
ynh_print_warn --message="Database $db_name not found"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
ynh_print_warn --message="No associated database to role $db_user was found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Create a user
|
# Create a user
|
||||||
#
|
#
|
||||||
# [internal]
|
# [internal]
|
||||||
|
|
Loading…
Add table
Reference in a new issue