View source for Backup and Restore

Also available in ((/Doc/Deutsch/Backup Deutsch)), ((/Doc/Français/Backup Français)), ((/Doc/Español/Backup  Español)), ((/Doc/Русский/Backup Русский)). 

{{toc numerate=1}}

Add example to backup and restore WackoWiki via
  1. command line (database + files)
  2. via phpMyAdmin / Adminer and FTP

===Via Command Line===
====Backup====

To back up just the application database, create a dump file using the mysqldump tool. In this example, the database is named ##wacko_db;## replace this with the name of the database you wish to export.

%%(cl) $ mysqldump -u root -p wacko_db > backup.sql %%

To back up all the databases, use this command instead:

%%(cl) $ mysqldump -A -u root -p > backup.sql %%

This operation could take some time depending on the database sizes.

%%(info type="note") The steps previously described will only back up the data contained inside your databases. There may be other files that you should take into account when performing a full backup, such as files that may have been uploaded to your application. Refer to your application’s documentation for more details. %%

====Restore====

Once you have the backup file, you can restore the data with a command like the one below:

%%(cl) $ mysql -u root -p < backup.sql %%

To restore the data to a specific database, include the database name in the command, as shown below. For example, to import the data to a database named ##wacko_db##, use this command:

%%(cl) $ mysql -u root -p -D wacko_db < backup.sql %%


===Via Admin Panel===
You can transfer the tables and the user related files with the Backup and Restore module in the ((/Doc/English/AdminPanel Admin panel)).
The source and the target version of WackoWiki should be the same as well as the table prefix.

====Backup====

Steps in Admin panel
  1. Backup module: Run an backup of the entire wiki including the files.
    1. ensure that the folder ##file/backup/## exists and is writable
    1. The backup is stored under ##file/backup/[date_time]##.
    2. file:/backup_database_en.png

====Restore====
  1. New installed wiki 
    2. Move the folder to your new installed wiki and put it there at the same location, e.g. ##file/backup/##
    1. file:/backup_transfer_sftp_en.png
  1. Recovery mode
    3. If you want restore a backup in an existing installation to a new database, you've to create the new database and enter the new ##db_vendor##, ##db_host##, ##db_name## and ##db_password## in the ##config.php## to run the Admin panel in recovery mode. 
      * This mode is useful if you want upgrade your existing database to a newer version, change the db vendor (mariadb or mysql) or recover a corrupt database.
      * Dont forget to delete the config cache afterwards.
    4. Change the value for ##RECOVERY_MODE## to ##1## in your ##constants.php## and go again to the Admin panel to restore your backup.
      * %%
const RECOVERY_MODE			= 1;
%%
  1. Restore module: Run restore.
    2. file:/restore_database_en.png
    3. The restore process can take a considerable amount of time depending on the volume of your backup.

%%(cl)

00:52:31 - Initiated Restoration
================================================
Using parameters:
	Ignore duplicated keys: Yes
	Ignore duplicated files: Yes

Saved cluster: No
	Assume DROP TABLE


00:52:31 - Restoring the structure of the table
================================================
Perform SQL-instructions:

DROP TABLE IF EXISTS `lab_acl`;
CREATE TABLE IF NOT EXISTS `lab_acl` (
	`page_id` int(10) unsigned NOT NULL,
	`privilege` varchar(10) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`list` text COLLATE utf8mb4_unicode_520_ci NOT NULL, 
	UNIQUE `idx_page_id` (`page_id`, `privilege`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_auth_token`;
CREATE TABLE IF NOT EXISTS `lab_auth_token` (
	`auth_token_id` int(10) unsigned NOT NULL auto_increment,
	`selector` char(12) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`token` char(64) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`user_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`token_expires` datetime, 
	PRIMARY KEY (`auth_token_id`), 
	UNIQUE `idx_selector` (`selector`), 
	KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_cache`;
CREATE TABLE IF NOT EXISTS `lab_cache` (
	`cache_id` int(10) unsigned NOT NULL auto_increment,
	`name` char(40) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`method` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`query` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`cache_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`cache_time` datetime, 
	PRIMARY KEY (`cache_id`), 
	KEY `name` (`name`), 
	KEY `idx_cache_time` (`cache_time`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_config`;
CREATE TABLE IF NOT EXISTS `lab_config` (
	`config_id` int(10) unsigned NOT NULL auto_increment,
	`config_name` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`config_value` text COLLATE utf8mb4_unicode_520_ci,
	`updated` timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL on update CURRENT_TIMESTAMP, 
	PRIMARY KEY (`config_id`), 
	UNIQUE `name` (`config_name`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_category`;
CREATE TABLE IF NOT EXISTS `lab_category` (
	`category_id` int(10) unsigned NOT NULL auto_increment,
	`parent_id` int(10) unsigned NOT NULL,
	`category_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`category` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`category_description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL, 
	PRIMARY KEY (`category_id`), 
	UNIQUE `idx_categories` (`category_lang`, `category`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_category_assignment`;
CREATE TABLE IF NOT EXISTS `lab_category_assignment` (
	`assignment_id` int(10) unsigned NOT NULL auto_increment,
	`category_id` int(10) unsigned NOT NULL,
	`object_type_id` int(10) unsigned NOT NULL,
	`object_id` int(10) unsigned NOT NULL, 
	PRIMARY KEY (`assignment_id`), 
	UNIQUE `idx_assignment` (`category_id`, `object_type_id`, `object_id`), 
	KEY `idx_object_type_id` (`object_type_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_external_link`;
CREATE TABLE IF NOT EXISTS `lab_external_link` (
	`link_id` int(10) unsigned NOT NULL auto_increment,
	`page_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`link` text COLLATE utf8mb4_unicode_520_ci NOT NULL, 
	PRIMARY KEY (`link_id`), 
	KEY `idx_page_id` (`page_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_file`;
CREATE TABLE IF NOT EXISTS `lab_file` (
	`file_id` int(10) unsigned NOT NULL auto_increment,
	`page_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`user_id` int(10) unsigned NOT NULL,
	`file_name` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`file_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`file_description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`caption` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`author` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`source` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`source_url` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`license_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`created` datetime,
	`modified` datetime,
	`file_size` int(10) unsigned DEFAULT '0' NOT NULL,
	`picture_w` int(10) unsigned DEFAULT '0' NOT NULL,
	`picture_h` int(10) unsigned DEFAULT '0' NOT NULL,
	`file_ext` varchar(10) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`mime_type` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`deleted` tinyint(1) unsigned DEFAULT '0', 
	PRIMARY KEY (`file_id`), 
	KEY `user_id` (`page_id`), 
	KEY `idx_deleted` (`deleted`), 
	KEY `idx_page_id` (`page_id`, `file_name`), 
	KEY `idx_page_id_2` (`page_id`, `created`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_file_link`;
CREATE TABLE IF NOT EXISTS `lab_file_link` (
	`file_link_id` int(10) unsigned NOT NULL auto_increment,
	`page_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`file_id` int(10) unsigned DEFAULT '0' NOT NULL, 
	PRIMARY KEY (`file_link_id`), 
	KEY `idx_page_id` (`page_id`), 
	KEY `idx_file_id` (`file_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_log`;
CREATE TABLE IF NOT EXISTS `lab_log` (
	`log_id` int(10) unsigned NOT NULL auto_increment,
	`log_time` datetime,
	`level` tinyint(1) unsigned NOT NULL,
	`user_id` int(10) unsigned NOT NULL,
	`ip` varchar(45) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`message` text COLLATE utf8mb4_unicode_520_ci NOT NULL, 
	PRIMARY KEY (`log_id`), 
	KEY `idx_level` (`level`), 
	KEY `idx_ip` (`ip`), 
	KEY `idx_time` (`log_time`), 
	KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_menu`;
CREATE TABLE IF NOT EXISTS `lab_menu` (
	`menu_id` int(10) unsigned NOT NULL auto_increment,
	`user_id` int(10) unsigned NOT NULL,
	`page_id` int(10) unsigned NOT NULL,
	`menu_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`menu_title` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`menu_position` smallint(2) unsigned NOT NULL, 
	PRIMARY KEY (`menu_id`), 
	UNIQUE `user_id` (`user_id`, `page_id`, `menu_lang`), 
	KEY `idx_user_id` (`user_id`), 
	KEY `idx_page_id` (`page_id`), 
	KEY `idx_lang` (`menu_lang`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_page`;
CREATE TABLE IF NOT EXISTS `lab_page` (
	`page_id` int(10) unsigned NOT NULL auto_increment,
	`version_id` int(10) unsigned DEFAULT '1' NOT NULL,
	`tag` varchar(255) COLLATE utf8mb4_bin NOT NULL,
	`menu_tag` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`created` datetime,
	`modified` datetime,
	`body` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`body_r` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`body_toc` text COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`formatting` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT 'wacko' NOT NULL,
	`owner_id` int(10) unsigned NOT NULL,
	`edit_note` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`minor_edit` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`page_size` int(10) unsigned DEFAULT '0' NOT NULL,
	`license_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`ip` varchar(45) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`user_id` int(10) unsigned NOT NULL,
	`latest` tinyint(1) DEFAULT '1' NOT NULL,
	`handler` varchar(30) COLLATE utf8mb4_unicode_520_ci DEFAULT 'page' NOT NULL,
	`comment_on_id` int(10) unsigned NOT NULL,
	`comments` int(4) unsigned DEFAULT '0' NOT NULL,
	`files` int(4) unsigned DEFAULT '0' NOT NULL,
	`revisions` int(10) unsigned DEFAULT '0' NOT NULL,
	`hits` int(11) unsigned DEFAULT '0' NOT NULL,
	`theme` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`page_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`title` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`depth` int(10) unsigned DEFAULT '0' NOT NULL,
	`parent_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`commented` datetime,
	`description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`keywords` varchar(255) COLLATE utf8mb4_bin NOT NULL,
	`footer_comments` tinyint(1) unsigned DEFAULT '1',
	`footer_files` tinyint(1) unsigned DEFAULT '1',
	`hide_toc` tinyint(1) unsigned,
	`hide_index` tinyint(1) unsigned,
	`reviewed` tinyint(1) unsigned DEFAULT '0',
	`reviewed_time` datetime,
	`reviewer_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`tree_level` tinyint(1) unsigned DEFAULT '0',
	`show_menu_tag` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`allow_rawhtml` tinyint(1) unsigned,
	`disable_safehtml` tinyint(1) unsigned,
	`noindex` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`deleted` tinyint(1) unsigned DEFAULT '0' NOT NULL, 
	PRIMARY KEY (`page_id`), 
	UNIQUE `idx_tag` (`tag`), 
	KEY `idx_created` (`created`), 
	KEY `idx_title` (`title`), 
	KEY `idx_minor_edit` (`minor_edit`), 
	KEY `idx_modified` (`modified`), 
	KEY `idx_commented` (`commented`), 
	KEY `idx_user_id` (`user_id`), 
	KEY `idx_owner_id` (`owner_id`), 
	KEY `idx_comment_on_id` (`comment_on_id`), 
	KEY `depth` (`depth`), 
	KEY `idx_deleted` (`deleted`), 
	FULLTEXT KEY `body` (`body`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_page_link`;
CREATE TABLE IF NOT EXISTS `lab_page_link` (
	`id` int(10) unsigned NOT NULL auto_increment,
	`from_page_id` int(10) unsigned NOT NULL,
	`to_tag` varchar(255) COLLATE utf8mb4_bin NOT NULL,
	`to_page_id` int(10) unsigned NOT NULL, 
	PRIMARY KEY (`id`), 
	KEY `idx_to` (`to_tag`), 
	KEY `idx_from_page_id` (`from_page_id`), 
	KEY `idx_from_tag` (`from_page_id`, `to_tag`(78))
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_referrer`;
CREATE TABLE IF NOT EXISTS `lab_referrer` (
	`referrer_id` int(10) unsigned NOT NULL auto_increment,
	`page_id` int(10) NOT NULL,
	`referrer` varchar(2083) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`referrer_time` datetime, 
	PRIMARY KEY (`referrer_id`), 
	KEY `idx_time` (`referrer_time`), 
	KEY `idx_page_id` (`page_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_revision`;
CREATE TABLE IF NOT EXISTS `lab_revision` (
	`revision_id` int(10) unsigned NOT NULL auto_increment,
	`page_id` int(10) unsigned NOT NULL,
	`version_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`tag` varchar(255) COLLATE utf8mb4_bin NOT NULL,
	`menu_tag` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`created` datetime,
	`modified` datetime,
	`body` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`body_r` mediumtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`formatting` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT 'wacko' NOT NULL,
	`owner_id` int(10) unsigned NOT NULL,
	`user_id` int(10) unsigned NOT NULL,
	`edit_note` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`minor_edit` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`page_size` int(10) unsigned DEFAULT '0' NOT NULL,
	`reviewed` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`reviewed_time` datetime,
	`reviewer_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`ip` varchar(45) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`latest` tinyint(1) DEFAULT '0' NOT NULL,
	`handler` varchar(30) COLLATE utf8mb4_unicode_520_ci DEFAULT 'page' NOT NULL,
	`comment_on_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`page_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`title` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`keywords` varchar(255) COLLATE utf8mb4_bin NOT NULL,
	`deleted` tinyint(1) unsigned DEFAULT '0' NOT NULL, 
	PRIMARY KEY (`revision_id`), 
	KEY `idx_tag` (`tag`), 
	KEY `idx_latest` (`latest`), 
	KEY `idx_minor_edit` (`minor_edit`), 
	KEY `idx_modified` (`modified`), 
	KEY `idx_approved` (`reviewed`), 
	KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_user`;
CREATE TABLE IF NOT EXISTS `lab_user` (
	`user_id` int(10) unsigned NOT NULL auto_increment,
	`user_name` varchar(80) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`real_name` varchar(80) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`password` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`email` varchar(254) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`account_status` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`account_type` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`enabled` tinyint(1) unsigned DEFAULT '1' NOT NULL,
	`signup_time` datetime,
	`change_password` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`user_ip` varchar(45) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`email_confirm` varchar(64) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`last_visit` datetime,
	`last_mark` datetime,
	`login_count` int(10) unsigned DEFAULT '0' NOT NULL,
	`password_request_count` smallint(6) unsigned DEFAULT '0' NOT NULL,
	`failed_login_count` smallint(6) unsigned DEFAULT '0' NOT NULL,
	`total_pages` int(10) unsigned DEFAULT '0' NOT NULL,
	`total_revisions` int(10) unsigned DEFAULT '0' NOT NULL,
	`total_comments` int(10) unsigned DEFAULT '0' NOT NULL,
	`total_uploads` int(10) unsigned DEFAULT '0' NOT NULL, 
	PRIMARY KEY (`user_id`), 
	UNIQUE `idx_user_name` (`user_name`), 
	KEY `idx_signuptime` (`signup_time`), 
	KEY `idx_enabled` (`enabled`), 
	KEY `account_type` (`account_type`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_user_setting`;
CREATE TABLE IF NOT EXISTS `lab_user_setting` (
	`setting_id` int(10) unsigned NOT NULL auto_increment,
	`user_id` int(10) unsigned NOT NULL,
	`theme` varchar(20) COLLATE utf8mb4_unicode_520_ci,
	`user_lang` varchar(5) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`list_count` int(10) unsigned DEFAULT '50',
	`menu_items` int(2) unsigned DEFAULT '5' NOT NULL,
	`dont_redirect` tinyint(1) unsigned,
	`send_watchmail` tinyint(1) unsigned DEFAULT '1',
	`show_files` tinyint(1) unsigned,
	`show_comments` tinyint(1) unsigned DEFAULT '1',
	`doubleclick_edit` tinyint(1) unsigned DEFAULT '1',
	`show_spaces` tinyint(1) unsigned DEFAULT '1',
	`allow_intercom` tinyint(1) unsigned,
	`allow_massemail` tinyint(1) unsigned DEFAULT '0',
	`autocomplete` tinyint(1) unsigned,
	`numerate_links` tinyint(1) unsigned DEFAULT '1' NOT NULL,
	`diff_mode` tinyint(1) unsigned DEFAULT '2' NOT NULL,
	`notify_minor_edit` tinyint(1) unsigned DEFAULT '1' NOT NULL,
	`notify_page` tinyint(1) unsigned DEFAULT '1' NOT NULL,
	`notify_comment` tinyint(1) unsigned DEFAULT '1' NOT NULL,
	`hide_lastsession` tinyint(1) unsigned,
	`validate_ip` tinyint(1) unsigned,
	`noid_pubs` tinyint(1) unsigned,
	`session_length` tinyint(3) unsigned,
	`timezone` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT 'UTC' NOT NULL,
	`sorting_comments` tinyint(1) unsigned DEFAULT '0' NOT NULL, 
	PRIMARY KEY (`setting_id`), 
	UNIQUE `idx_user_id` (`user_id`), 
	KEY `idx_send_watchmail` (`send_watchmail`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_usergroup`;
CREATE TABLE IF NOT EXISTS `lab_usergroup` (
	`group_id` int(10) unsigned NOT NULL auto_increment,
	`group_name` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`description` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`moderator_id` varchar(25) COLLATE utf8mb4_unicode_520_ci NOT NULL,
	`created` datetime,
	`is_system` tinyint(1) unsigned NOT NULL,
	`open` tinyint(1) unsigned NOT NULL,
	`active` tinyint(1) unsigned NOT NULL, 
	PRIMARY KEY (`group_id`), 
	UNIQUE `idx_group_name` (`group_name`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_usergroup_member`;
CREATE TABLE IF NOT EXISTS `lab_usergroup_member` (
	`group_id` int(10) unsigned NOT NULL,
	`user_id` int(10) unsigned NOT NULL, 
	UNIQUE `idx_group_id` (`group_id`, `user_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
DROP TABLE IF EXISTS `lab_watch`;
CREATE TABLE IF NOT EXISTS `lab_watch` (
	`watch_id` int(10) unsigned NOT NULL auto_increment,
	`user_id` int(10) unsigned NOT NULL,
	`page_id` int(10) unsigned NOT NULL,
	`comment_id` int(10) unsigned DEFAULT '0' NOT NULL,
	`pending` tinyint(1) unsigned DEFAULT '0' NOT NULL,
	`time` timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL on update CURRENT_TIMESTAMP, 
	PRIMARY KEY (`watch_id`), 
	KEY `idx_user_id` (`user_id`), 
	KEY `idx_page_id` (`page_id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;


00:52:32 - Completed. Processed instructions: 40


00:52:32 - Restore the contents of tables
================================================
Just download and process tables dump
(Instruction INSERT):

	00:52:32 - lab_acl
==========================
		records:   630

	00:52:34 - lab_auth_token
==========================
		records:   1

	00:52:34 - lab_cache
==========================
		records:   9

	00:52:34 - lab_config
==========================
		records:   216

	00:52:35 - lab_category
==========================
		records:   26

	00:52:35 - lab_category_assignment
==========================
		records:   107

	00:52:36 - lab_external_link
==========================
		records:   15

	00:52:36 - lab_file
==========================
		records:   30

	00:52:36 - lab_file_link
==========================
		records:   23

	00:52:36 - lab_log
==========================
		records:   274

	00:52:37 - lab_menu
==========================
		records:   105

	00:52:38 - lab_page
==========================
		records:   169

	00:52:39 - lab_page_link
==========================
		records:   86

	00:52:39 - lab_referrer
==========================
		records:   10

	00:52:39 - lab_revision
==========================
		records:   153

	00:52:40 - lab_user
==========================
		records:   25

	00:52:40 - lab_user_setting
==========================
		records:   23

	00:52:40 - lab_usergroup
==========================
		records:   4

	00:52:40 - lab_usergroup_member
==========================
		records:   6

	00:52:40 - lab_watch
==========================
		records:   148

00:52:41 - Completed. Total entries: 2060


00:52:41 - Restoring files
================================================
Decompress and store the contents of directories
(homonymic files: skip):

	00:52:41 - file/global
==========================
		File: 10
		restored: 0
		skipped: 10

	00:52:41 - file/perpage
==========================
		File: 21
		restored: 0
		skipped: 21

00:52:41 - Completed. Total files:
	all: 31
	restored: 0
	skipped: 31


================================================
00:52:41 - RESTORATION COMPLETED

%%

If you've used the recovery mode, reset the value for ##RECOVERY_MODE## again to ##0## in your constants.php.
%%
const RECOVERY_MODE			= 0;
%%
====Re-Synchronize data====
After a successful restoration you can perform a re-rendering for all intrasite links to rebuild the records of the ##page_link## and ##file_link## table.
  * Admin Panel -> Synchronizing data -> Wiki-links
file:/ap_rerender_links_en.png?right&400&caption
You can tune the re-rendering settings to avoid timeouts or reaching the memory limit. This is mostly interesting for shared hosting or servers you do not manage. The server terminates then the script without further notice.

If the re-rendering fails just reduce the number of pages it renders per turn, the redirect LIMIT is set to ##10##. If you reach the redirect limit the script will provide you with a link **Next »**, which  you have to click to render the next batches of pages. Furthermore avoid possible session timeouts while the script is running.