mirror of
https://github.com/YunoHost-Apps/my_webapp_ynh.git
synced 2024-09-03 19:46:26 +02:00
Implement postgresql database choice
This commit is contained in:
parent
03cc1fbd95
commit
80f55d4feb
7 changed files with 69 additions and 22 deletions
|
@ -52,11 +52,12 @@ ram.runtime = "50M"
|
||||||
choices = ["none", "7.4", "8.0", "8.1", "8.2"]
|
choices = ["none", "7.4", "8.0", "8.1", "8.2"]
|
||||||
default = "8.0"
|
default = "8.0"
|
||||||
|
|
||||||
[install.with_mysql]
|
[install.database]
|
||||||
ask.en = "Do you need a MySQL database?"
|
ask.en = "Do you need a database?"
|
||||||
ask.fr = "Avez-vous besoin d'une base de données MySQL ?"
|
ask.fr = "Avez-vous besoin d'une base de données ?"
|
||||||
type = "boolean"
|
type = "select"
|
||||||
default = false
|
choices = [ "none", "mysql, 'posrgresql" ]
|
||||||
|
default = "none"
|
||||||
|
|
||||||
[resources]
|
[resources]
|
||||||
[resources.system_user]
|
[resources.system_user]
|
||||||
|
@ -69,9 +70,10 @@ ram.runtime = "50M"
|
||||||
[resources.apt]
|
[resources.apt]
|
||||||
packages = "nginx" # Kind of "dummy" value to be sure to have a non-empty dep list
|
packages = "nginx" # Kind of "dummy" value to be sure to have a non-empty dep list
|
||||||
packages_from_raw_bash = """
|
packages_from_raw_bash = """
|
||||||
if [[ "$with_mysql" = 1 ]]
|
if [[ "$database" == "mysql" ]]; then
|
||||||
then
|
|
||||||
echo "mariadb-server"
|
echo "mariadb-server"
|
||||||
|
elif [[ "$database" == "postgresql" ]]; then
|
||||||
|
echo "postgresql postgresql-contrib"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$phpversion" != none ]]
|
if [[ "$phpversion" != none ]]
|
||||||
|
|
|
@ -40,10 +40,15 @@ fi
|
||||||
# BACKUP THE MYSQL DATABASE
|
# BACKUP THE MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $with_mysql -eq 1 ]
|
if [ $database != "none" ]
|
||||||
then
|
then
|
||||||
ynh_print_info --message="Backing up the MySQL database..."
|
ynh_print_info --message="Backing up the database..."
|
||||||
ynh_mysql_dump_db --database="$db_name" > db.sql
|
|
||||||
|
if [ $database == "mysql" ]; then
|
||||||
|
ynh_mysql_dump_db --database="$db_name" > db.sql*
|
||||||
|
elif [ $database == "postgresql" ]
|
||||||
|
ynh_psql_dump_db --database="$db_name" > db.sql
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -35,9 +35,8 @@ ynh_app_setting_set --app=$app --key=password --value=$password
|
||||||
# CREATE A MYSQL DATABASE
|
# CREATE A MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $with_mysql -eq 1 ]
|
if [ $database != "none" ]; then
|
||||||
then
|
ynh_script_progression --message="Creating a database..." --weight=2
|
||||||
ynh_script_progression --message="Creating a MySQL database..." --weight=2
|
|
||||||
|
|
||||||
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
||||||
db_user=$db_name
|
db_user=$db_name
|
||||||
|
@ -45,7 +44,12 @@ then
|
||||||
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
||||||
ynh_app_setting_set --app=$app --key=db_user --value=$db_user
|
ynh_app_setting_set --app=$app --key=db_user --value=$db_user
|
||||||
ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd
|
ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd
|
||||||
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
|
|
||||||
|
if [ $database == "mysql" ]; then
|
||||||
|
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
|
||||||
|
elif [ $database == "postgresql" ]; then
|
||||||
|
ynh_psql_setup_db --db_user=$db_user --db_name=$db_name
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -15,14 +15,18 @@ source /usr/share/yunohost/helpers
|
||||||
# REMOVE THE MYSQL DATABASE
|
# REMOVE THE MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $with_mysql -eq 1 ]; then
|
if [ $database != "none" ]; then
|
||||||
ynh_script_progression --message="Removing the MySQL database..." --weight=2
|
ynh_script_progression --message="Removing the database..." --weight=2
|
||||||
|
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
db_user=$db_name
|
db_user=$db_name
|
||||||
|
|
||||||
# Remove a database if it exists, along with the associated user
|
# Remove a database if it exists, along with the associated user
|
||||||
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name
|
if [ $database == "mysql" ]; then
|
||||||
|
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name
|
||||||
|
elif [ $database == "postgresql" ]; then
|
||||||
|
ynh_psql_remove_db --db_user=$db_user --db_name=$db_name
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -20,14 +20,20 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.d/"
|
||||||
# RESTORE THE MYSQL DATABASE
|
# RESTORE THE MYSQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $with_mysql -eq 1 ]; then
|
if [ $database != "none" ]; then
|
||||||
ynh_script_progression --message="Restoring the MySQL database..."
|
ynh_script_progression --message="Restoring the database..."
|
||||||
|
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
db_user=$db_name
|
db_user=$db_name
|
||||||
db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
|
db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd)
|
||||||
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
|
||||||
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
if [ $database == "mysql" ]; then
|
||||||
|
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
||||||
|
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
||||||
|
elif [ $database == "postgresql" ]; then
|
||||||
|
ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
||||||
|
ynh_psql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -20,6 +20,18 @@ upgrade_type=$(ynh_check_app_version_changed)
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Ensuring downward compatibility..."
|
ynh_script_progression --message="Ensuring downward compatibility..."
|
||||||
|
|
||||||
|
# If database doesn't exist, create it and remove with_mysql setting
|
||||||
|
if [ -z "$(database:-)" ]; then
|
||||||
|
if [ $with_mysql -eq 1 ]; then
|
||||||
|
$database="mysql"
|
||||||
|
else
|
||||||
|
$database="none"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ynh_app_setting_set --app=$app --key=database --value=$database
|
||||||
|
ynh_app_setting_delete --app=$app --key=with_mysql
|
||||||
|
fi
|
||||||
|
|
||||||
# If admin_mail_html doesn't exist, create it
|
# If admin_mail_html doesn't exist, create it
|
||||||
if [ -z "${admin_mail_html:-}" ]; then
|
if [ -z "${admin_mail_html:-}" ]; then
|
||||||
admin_mail_html=1
|
admin_mail_html=1
|
||||||
|
|
16
tests.toml
16
tests.toml
|
@ -7,8 +7,10 @@ test_format = 1.0
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
|
|
||||||
args.with_sftp = "1"
|
args.with_sftp = "1"
|
||||||
args.with_mysql = "1"
|
args.database = "none"
|
||||||
args.phpversion = "8.0"
|
args.phpversion = "8.0"
|
||||||
|
test_upgrade_from.bf5d3ed.name = "Upgrade from 1.0~ynh14"
|
||||||
|
test_upgrade_from.bf5d3ed.args.with_mysql = "0"
|
||||||
|
|
||||||
[80_test]
|
[80_test]
|
||||||
|
|
||||||
|
@ -19,3 +21,15 @@ test_format = 1.0
|
||||||
|
|
||||||
only = ["install.subdir", "backup_restore", "upgrade" ]
|
only = ["install.subdir", "backup_restore", "upgrade" ]
|
||||||
args.phpversion = "none"
|
args.phpversion = "none"
|
||||||
|
|
||||||
|
[mysql_test]
|
||||||
|
|
||||||
|
only = ["install.subdir", "backup_restore", "upgrade", "upgrade.bf5d3ed" ]
|
||||||
|
args.database = "mysql"
|
||||||
|
test_upgrade_from.bf5d3ed.name = "Upgrade from 1.0~ynh14"
|
||||||
|
test_upgrade_from.bf5d3ed.args.with_mysql = "1"
|
||||||
|
|
||||||
|
[postgresql_test]
|
||||||
|
|
||||||
|
only = ["install.subdir", "backup_restore", "upgrade" ]
|
||||||
|
args.database = "postgresql"
|
||||||
|
|
Loading…
Add table
Reference in a new issue