================ Restoring Backup ================ To restore a Nextcloud installation there are four main things you need to restore: #. The configuration directory #. The data directory #. The database #. The theme directory .. note:: You must have both the database and data directory. You cannot complete restoration unless you have both of these. When you have completed your restoration, see the ``Setting Strong Directory Permissions`` section of :doc:`../installation/installation_wizard`. Also make sure to run the :ref:`maintenance:data-fingerprint ` command afterwards, to ensure your sync clients can recover from the restored backup. Restore Folders --------------- .. note:: This guide assumes that your previous backup is called "nextcloud-dirbkp" Simply copy your configuration and data folder (or even your whole Nextcloud install and data folder) to your Nextcloud environment. You could use this command:: rsync -Aax nextcloud-dirbkp/ nextcloud/ Restore Database ---------------- Clean Database Before Restoring =============================== .. warning:: Before restoring a backup you need to make sure to delete all existing database tables. The easiest way to do this is to drop and recreate the database. SQLite does this automatically. MySQL ^^^^^ MySQL is the recommended database engine. To restore MySQL:: mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud" mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud" If you use UTF8 with multibyte support (e.g. for emoijs in filenames), use:: mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud" mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" PostgreSQL ^^^^^^^^^^ :: PGPASSWORD="password" psql -h [server] -U [username] -d nextcloud -c "DROP DATABASE \"nextcloud\";" PGPASSWORD="password" psql -h [server] -U [username] -d nextcloud -c "CREATE DATABASE \"nextcloud\";" Restoring ========= .. note:: This guide assumes that your previous backup is called "nextcloud-sqlbkp.bak" MySQL ^^^^^ MySQL is the recommended database engine. To restore MySQL:: mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak SQLite ^^^^^^ :: rm data/owncloud.db sqlite3 data/owncloud.db < nextcloud-sqlbkp.bak PostgreSQL ^^^^^^^^^^ :: PGPASSWORD="password" pg_restore -c -d nextcloud -h [server] -U [username] nextcloud-sqlbkp.bak