diff --git a/scripts/_common.sh b/scripts/_common.sh index d902357..53fdfe8 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -249,7 +249,8 @@ myynh_execute_psql_as_root() { ynh_handle_getopts_args "$@" database="${database:-}" - if [ -n "$database" ]; then + if [ -n "$database" ] + then database="--dbname=$database" fi @@ -265,6 +266,19 @@ myynh_create_psql_db() { myynh_execute_psql_as_root --sql="ALTER USER $app WITH SUPERUSER;" --database="$app" } +# Update the database +myynh_update_psql_db() { + for db in postgres "$app" + do + test_collation_mismatch=$(ynh_exec_warn_less myynh_execute_psql_as_root --sql=";" --database="$db" | grep "collation version mismatch") + if [ -n "$test_collation_mismatch" ] + then + ynh_exec_warn_less myynh_execute_psql_as_root --sql="REINDEX DATABASE $db;" --database="$db" + myynh_execute_psql_as_root --sql="ALTER DATABASE $db REFRESH COLLATION VERSION;" --database="$db" + fi + done +} + # Remove the database myynh_drop_psql_db() { myynh_execute_psql_as_root --sql="REVOKE CONNECT ON DATABASE $app FROM public;" diff --git a/scripts/upgrade b/scripts/upgrade index c6ffcff..1d608f8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -49,6 +49,13 @@ ynh_script_progression --message="Installing nodejs..." --weight=1 ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" +#================================================= +# UPDATE A POSTGRESQL DATABASE +#================================================= +ynh_script_progression --message="Udpating a PostgreSQL database..." --weight=1 + +myynh_update_psql_db + #================================================= # MAKE INSTALL #=================================================