Added support for PostgreSQL; Restore MySQL with UTF8 support
This commit is contained in:
@@ -123,7 +123,11 @@ echo
|
|||||||
# Backup DB
|
# Backup DB
|
||||||
#
|
#
|
||||||
echo "Backup Nextcloud database..."
|
echo "Backup Nextcloud database..."
|
||||||
|
# MySQL/MariaDB:
|
||||||
mysqldump --single-transaction -h localhost -u "${dbUser}" -p"${dbPassword}" "${nextcloudDatabase}" > "${backupdir}/${fileNameBackupDb}"
|
mysqldump --single-transaction -h localhost -u "${dbUser}" -p"${dbPassword}" "${nextcloudDatabase}" > "${backupdir}/${fileNameBackupDb}"
|
||||||
|
|
||||||
|
# PostgreSQL (uncomment if you are using PostgreSQL as Nextcloud database)
|
||||||
|
#PGPASSWORD="${dbPassword}" pg_dump "${nextcloudDatabase}" -h localhost -U "${dbUser}" -f "${backupdir}/${fileNameBackupDb}"
|
||||||
echo "Done"
|
echo "Done"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|||||||
@@ -121,17 +121,32 @@ echo
|
|||||||
# Restore database
|
# Restore database
|
||||||
#
|
#
|
||||||
echo "Dropping old Nextcloud DB..."
|
echo "Dropping old Nextcloud DB..."
|
||||||
|
# MySQL/MariaDB:
|
||||||
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" -e "DROP DATABASE ${nextcloudDatabase}"
|
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" -e "DROP DATABASE ${nextcloudDatabase}"
|
||||||
|
|
||||||
|
# PostgreSQL (uncomment if you are using PostgreSQL as Nextcloud database)
|
||||||
|
#PGPASSWORD="${dbPassword} psql -h localhost -U "${dbUser}" -d nextcloud -c "DROP DATABASE \"${nextcloudDatabase}\";"
|
||||||
echo "Done"
|
echo "Done"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "Creating new DB for Nextcloud..."
|
echo "Creating new DB for Nextcloud..."
|
||||||
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" -e "CREATE DATABASE ${nextcloudDatabase}"
|
# MySQL/MariaDB:
|
||||||
|
# Use this if the databse from the backup uses UTF8 with multibyte support (e.g. for emoijs in filenames):
|
||||||
|
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" -e "CREATE DATABASE ${nextcloudDatabase} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
|
||||||
|
# Use this if the database from the backup DOES NOT use UTF8 with multibyte support (e.g. for emoijs in filenames):
|
||||||
|
#mysql -h localhost -u "${dbUser}" -p"${dbPassword}" -e "CREATE DATABASE ${nextcloudDatabase}"
|
||||||
|
|
||||||
|
# PostgreSQL (uncomment if you are using PostgreSQL as Nextcloud database)
|
||||||
|
#PGPASSWORD="${dbPassword}" psql -h localhost -U "${dbUser}" -d "${nextcloudDatabase}" -c "CREATE DATABASE \"${nextcloudDatabase}\";"
|
||||||
echo "Done"
|
echo "Done"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "Restoring backup DB..."
|
echo "Restoring backup DB..."
|
||||||
|
# MySQL/MariaDB:
|
||||||
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" "${nextcloudDatabase}" < "${currentRestoreDir}/${fileNameBackupDb}"
|
mysql -h localhost -u "${dbUser}" -p"${dbPassword}" "${nextcloudDatabase}" < "${currentRestoreDir}/${fileNameBackupDb}"
|
||||||
|
|
||||||
|
# PostgreSQL (uncomment if you are using PostgreSQL as Nextcloud database)
|
||||||
|
#PGPASSWORD="${dbPassword}" pg_restore -c -d "${nextcloudDatabase}" -h localhost -U "${dbUser}" "${currentRestoreDir}/${fileNameBackupDb}"
|
||||||
echo "Done"
|
echo "Done"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ The scripts take care of these three items to backup automatically.
|
|||||||
- The scripts assume that Nextcloud's data directory is *not* a subdirectory of the Nextcloud installation (file directory). The general recommendation is that the data directory should not be located somewhere in the web folder of your webserver (usually */var/www/*), but in a different folder (e.g. */var/nextcloud_data*). For more information, see [here](https://docs.nextcloud.com/server/15/admin_manual/installation/installation_wizard.html#data-directory-location-label).
|
- The scripts assume that Nextcloud's data directory is *not* a subdirectory of the Nextcloud installation (file directory). The general recommendation is that the data directory should not be located somewhere in the web folder of your webserver (usually */var/www/*), but in a different folder (e.g. */var/nextcloud_data*). For more information, see [here](https://docs.nextcloud.com/server/15/admin_manual/installation/installation_wizard.html#data-directory-location-label).
|
||||||
- However, if your data directory *is* located under the Nextcloud file directory, you'll have to change the scripts so that the data directory is not part of the backup/restore (otherwise, it would be copied twice).
|
- However, if your data directory *is* located under the Nextcloud file directory, you'll have to change the scripts so that the data directory is not part of the backup/restore (otherwise, it would be copied twice).
|
||||||
- The scripts only backup the Nextcloud data directory. If you have any external storage mounted in Nextcloud, these directories have to be handled separately.
|
- The scripts only backup the Nextcloud data directory. If you have any external storage mounted in Nextcloud, these directories have to be handled separately.
|
||||||
- If you have enabled 4 byte support (see [Nextcloud Administration Manual](https://docs.nextcloud.com/server/15/admin_manual/configuration_database/mysql_4byte_support.html)) while backup, you have to enable 4 byte support on the target system *before* restoring the backup.
|
- The scripts assume that you are using MySQL/MariaDB as database for Nextcloud. However, it also supports PostreSQL databases. In this case you have to uncomment the parts of backing up/restoring the database.
|
||||||
- If you do not want to save the database password in the scripts, remove the variable *dbPassword* and call *mysql* with the *-p* parameter (without password). When calling the scripts manually, you'll be asked for the database password.
|
- You should have enabled 4 byte support (see [Nextcloud Administration Manual](https://docs.nextcloud.com/server/15/admin_manual/configuration_database/mysql_4byte_support.html)) on your Nextcloud database. Otherwise, when you have *not* enabled 4 byte support, you have to edit the restore script, to that the database is not created with 4 byte support enabled.
|
||||||
|
|
||||||
## Backup
|
## Backup
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user