Improve db management and bug fix

This commit is contained in:
Josué Tille 2023-09-27 20:13:07 +02:00
parent c9d2aa4f9c
commit 7b40b86c96
No known key found for this signature in database
GPG key ID: 716A6C99B04194EF
8 changed files with 22 additions and 15 deletions

View file

@ -13,5 +13,5 @@ host = 127.0.0.1
port = 3306 port = 3306
user = __DB_USER__ user = __DB_USER__
password = __DB_PWD__ password = __DB_PWD__
db_name = seafiledb db_name = __DB_NAME__
connection_charset = utf8 connection_charset = utf8

View file

@ -111,8 +111,11 @@ ram.runtime = "500M"
armhf.sha256 = "171fcf08b726d452e1c4cd22dadb9f8f5cf6848424ebc1e04cde5be34ef3d7f6" armhf.sha256 = "171fcf08b726d452e1c4cd22dadb9f8f5cf6848424ebc1e04cde5be34ef3d7f6"
[resources.apt] [resources.apt]
packages = ["expect", "ffmpeg", "pkgconf", packages = ["expect", "ffmpeg", "pkgconf", "mariadb-server",
"python3", "python3-setuptools", "python3-pip", "python3-requests", "python3-dev", "libmariadb-dev-compat", "libmariadb-dev", "python3", "python3-setuptools", "python3-pip", "python3-requests", "python3-dev", "libmariadb-dev-compat", "libmariadb-dev",
"memcached", "libmemcached-dev", "memcached", "libmemcached-dev",
"python3-scipy", "python3-matplotlib", "python3-scipy", "python3-matplotlib",
"libjpeg62-turbo-dev", "zlib1g-dev", "libffi-dev"] "libjpeg62-turbo-dev", "zlib1g-dev", "libffi-dev"]
[resources.database]
type = "mysql"

View file

@ -36,8 +36,8 @@ ynh_backup --src_path /etc/fail2ban/filter.d/$app.conf
# Backup mysql # Backup mysql
ynh_print_info --message="Backing up database" ynh_print_info --message="Backing up database"
ynh_mysql_dump_db --database $db_name > ${YNH_CWD}/seafiledb.dmp
ynh_mysql_dump_db --database ccnetdb > ${YNH_CWD}/ccnetdb.dmp ynh_mysql_dump_db --database ccnetdb > ${YNH_CWD}/ccnetdb.dmp
ynh_mysql_dump_db --database seafiledb > ${YNH_CWD}/seafiledb.dmp
ynh_mysql_dump_db --database seahubdb > ${YNH_CWD}/seahubdb.dmp ynh_mysql_dump_db --database seahubdb > ${YNH_CWD}/seahubdb.dmp
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."

View file

@ -5,7 +5,8 @@ set seafile_dir [lindex $argv 0]
set server_name [lindex $argv 1] set server_name [lindex $argv 1]
set domain [lindex $argv 2] set domain [lindex $argv 2]
set fileserver_port [lindex $argv 3] set fileserver_port [lindex $argv 3]
set db_pwd [lindex $argv 4] set db_name [lindex $argv 4]
set db_pwd [lindex $argv 5]
spawn $seafile_dir/setup-seafile-mysql.sh spawn $seafile_dir/setup-seafile-mysql.sh
@ -40,7 +41,7 @@ expect "Enter the existing database name for ccnet:"
send "ccnetdb\r"; send "ccnetdb\r";
expect "Enter the existing database name for seafile:" expect "Enter the existing database name for seafile:"
send "seafiledb\r"; send "$db_name\r";
expect "Enter the existing database name for seahub:" expect "Enter the existing database name for seahub:"
send "seahubdb\r"; send "seahubdb\r";

View file

@ -39,8 +39,7 @@ ynh_setup_source --dest_dir=$install_dir/seafile-server-$seafile_version
ynh_script_progression --message="Configuring MySQL database..." ynh_script_progression --message="Configuring MySQL database..."
db_user=seafile db_user=seafile
db_helper=ynh_"mysql"_setup_db db_helper=ynh_"mysql"_setup_db
$db_helper --db_user $db_user --db_name ccnetdb $db_helper --db_user $db_user --db_name ccnetdb --db_pwd "$db_pwd"
$db_helper --db_user $db_user --db_name seafiledb --db_pwd "$db_pwd"
$db_helper --db_user $db_user --db_name seahubdb --db_pwd "$db_pwd" $db_helper --db_user $db_user --db_name seahubdb --db_pwd "$db_pwd"
ynh_script_progression --message="Configuring application..." --weight=3 ynh_script_progression --message="Configuring application..." --weight=3
@ -49,7 +48,7 @@ ynh_script_progression --message="Configuring application..." --weight=3
mv_expect_scripts mv_expect_scripts
chmod +x $install_dir/seafile-server-$seafile_version/setup-seafile-mysql.sh chmod +x $install_dir/seafile-server-$seafile_version/setup-seafile-mysql.sh
set_permission set_permission
sudo -u $YNH_APP_ID $expect_scripts_dir/install.exp "$install_dir/seafile-server-$seafile_version" "$server_name" "$domain" "$port_fileserver" "$db_pwd" sudo -u $YNH_APP_ID $expect_scripts_dir/install.exp "$install_dir/seafile-server-$seafile_version" "$server_name" "$domain" "$port_fileserver" "$db_name" "$db_pwd"
sleep 3 sleep 3

View file

@ -37,7 +37,6 @@ ynh_secure_remove --file=/opt/yunohost/$app
ynh_script_progression --message="Removing databases..." ynh_script_progression --message="Removing databases..."
db_helper=ynh_"mysql"_remove_db db_helper=ynh_"mysql"_remove_db
$db_helper --db_name ccnetdb --db_user seafile $db_helper --db_name ccnetdb --db_user seafile
$db_helper --db_name seafiledb --db_user seafile
$db_helper --db_name seahubdb --db_user seafile $db_helper --db_name seahubdb --db_user seafile
# Remove systemd service # Remove systemd service

View file

@ -31,7 +31,6 @@ install_dependance
ynh_script_progression --message="Restoring database..." --weight=3 ynh_script_progression --message="Restoring database..." --weight=3
db_helper=ynh_"mysql"_setup_db db_helper=ynh_"mysql"_setup_db
$db_helper --db_user $db_user --db_name ccnetdb --db_pwd "$db_pwd" $db_helper --db_user $db_user --db_name ccnetdb --db_pwd "$db_pwd"
$db_helper --db_user $db_user --db_name seafiledb --db_pwd "$db_pwd"
$db_helper --db_user $db_user --db_name seahubdb --db_pwd "$db_pwd" $db_helper --db_user $db_user --db_name seahubdb --db_pwd "$db_pwd"
su -c "mysql -u ${app} -p$db_pwd ccnetdb < ${YNH_CWD}/ccnetdb.dmp" su -c "mysql -u ${app} -p$db_pwd ccnetdb < ${YNH_CWD}/ccnetdb.dmp"
su -c "mysql -u ${app} -p$db_pwd seafiledb < ${YNH_CWD}/seafiledb.dmp" su -c "mysql -u ${app} -p$db_pwd seafiledb < ${YNH_CWD}/seafiledb.dmp"

View file

@ -39,6 +39,12 @@ pkill -f seaf-server || true
pkill -f ccnet-server || true pkill -f ccnet-server || true
pkill -f seahub || true pkill -f seahub || true
# Migrate DB if needed
if mysqlshow | grep -q seafiledb; then
ynh_mysql_execute_as_root --sql 'DROP DATABASE `'$db_name'`'
ynh_mysql_execute_as_root --sql 'RENAME DATABASE `seafiledb TO "'$db_name'"'
fi
ynh_script_progression --message="Upgrading source files..." --weight=6 ynh_script_progression --message="Upgrading source files..." --weight=6
ynh_script_progression --message="Installing sources files..." --weight=7 ynh_script_progression --message="Installing sources files..." --weight=7
@ -71,11 +77,11 @@ case $installed_version in
"7.0"* ) "7.0"* )
# Fix file comment # Fix file comment
pushd $install_dir/seafile-server-$seafile_version pushd $install_dir/seafile-server-$seafile_version
sudo -u $seafile_user $install_dir/seafile-server-$seafile_version/seahub.sh python-env python3 seahub/manage.py migrate_file_comment sudo -u $YNH_APP_ID $install_dir/seafile-server-$seafile_version/seahub.sh python-env python3 seahub/manage.py migrate_file_comment
popd popd
# Update seafile by script # Update seafile by script
sudo -u $seafile_user $expect_scripts_dir/upgrade_7.1.exp $install_dir/seafile-server-$seafile_version sudo -u $YNH_APP_ID $expect_scripts_dir/upgrade_7.1.exp $install_dir/seafile-server-$seafile_version
# Fix seafile data link. Look like that the upgrade script of seafile don't always work correctly # Fix seafile data link. Look like that the upgrade script of seafile don't always work correctly
if [ -e $install_dir/seafile-data ]; then if [ -e $install_dir/seafile-data ]; then
@ -85,14 +91,14 @@ case $installed_version in
ln -s $seafile_data $install_dir/seafile-data ln -s $seafile_data $install_dir/seafile-data
;& ;&
"7.1."* ) "7.1."* )
sudo -u $seafile_user $expect_scripts_dir/upgrade_8.0.exp $install_dir/seafile-server-$seafile_version sudo -u $YNH_APP_ID $expect_scripts_dir/upgrade_8.0.exp $install_dir/seafile-server-$seafile_version
;& ;&
"8.0."* ) "8.0."* )
sudo -u $seafile_user $expect_scripts_dir/upgrade_9.0.exp $install_dir/seafile-server-$seafile_version sudo -u $YNH_APP_ID $expect_scripts_dir/upgrade_9.0.exp $install_dir/seafile-server-$seafile_version
;& ;&
esac esac
sudo -u $seafile_user $expect_scripts_dir/minor-upgrade.exp $install_dir/seafile-server-$seafile_version sudo -u $YNH_APP_ID $expect_scripts_dir/minor-upgrade.exp $install_dir/seafile-server-$seafile_version
# Clean url in config in DB # Clean url in config in DB
clean_url_in_db_config clean_url_in_db_config