diff --git a/install/froxlor.sql b/install/froxlor.sql index 36947984..127fa073 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -8,7 +8,7 @@ CREATE TABLE `ftp_groups` ( PRIMARY KEY (`id`), UNIQUE KEY `groupname` (`groupname`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -33,7 +33,7 @@ CREATE TABLE `ftp_users` ( PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -57,7 +57,7 @@ CREATE TABLE `mail_users` ( `mboxsize` bigint(30) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -73,7 +73,7 @@ CREATE TABLE `mail_virtual` ( `iscatchall` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `email` (`email`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `panel_activation`; @@ -84,7 +84,7 @@ CREATE TABLE `panel_activation` ( `creation` int(11) unsigned NOT NULL default '0', `activationcode` varchar(50) default NULL, PRIMARY KEY (id) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `panel_admins`; @@ -134,7 +134,7 @@ CREATE TABLE `panel_admins` ( `data_2fa` varchar(500) NOT NULL default '', PRIMARY KEY (`adminid`), UNIQUE KEY `loginname` (`loginname`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -202,7 +202,7 @@ CREATE TABLE `panel_customers` ( `logviewenabled` tinyint(1) NOT NULL default '0', PRIMARY KEY (`customerid`), UNIQUE KEY `loginname` (`loginname`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -215,7 +215,7 @@ CREATE TABLE `panel_databases` ( `dbserver` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -268,7 +268,7 @@ CREATE TABLE `panel_domains` ( KEY `customerid` (`customerid`), KEY `parentdomain` (`parentdomainid`), KEY `domain` (`domain`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -291,7 +291,7 @@ CREATE TABLE `panel_ipsandports` ( `docroot` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `ip_port` (`ip`,`port`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -307,7 +307,7 @@ CREATE TABLE `panel_htaccess` ( `error401path` varchar(255) NOT NULL default '', `options_cgi` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -321,7 +321,7 @@ CREATE TABLE `panel_htpasswds` ( `authname` varchar(255) NOT NULL default 'Restricted Area', PRIMARY KEY (`id`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -350,7 +350,7 @@ CREATE TABLE `panel_settings` ( `varname` varchar(255) NOT NULL default '', `value` text NOT NULL, PRIMARY KEY (`settingid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('catchall', 'catchall_enabled', '1'), @@ -681,7 +681,7 @@ opcache.interned_strings_buffer'), ('panel', 'customer_hide_options', ''), ('panel', 'is_configured', '0'), ('panel', 'version', '0.10.0-rc1'), - ('panel', 'db_version', '201904100'); + ('panel', 'db_version', '201904250'); DROP TABLE IF EXISTS `panel_tasks`; @@ -690,7 +690,7 @@ CREATE TABLE `panel_tasks` ( `type` int(11) NOT NULL default '0', `data` text, PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `panel_tasks` (`type`) VALUES ('99'); @@ -705,7 +705,7 @@ CREATE TABLE `panel_templates` ( `value` longtext NOT NULL, PRIMARY KEY (id), KEY adminid (adminid) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -723,7 +723,7 @@ CREATE TABLE `panel_traffic` ( `mail` bigint(30) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -741,7 +741,7 @@ CREATE TABLE `panel_traffic_admins` ( `mail` bigint(30) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `adminid` (`adminid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -758,7 +758,7 @@ CREATE TABLE `panel_diskspace` ( `mysql` bigint(30) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `customerid` (`customerid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -775,7 +775,7 @@ CREATE TABLE `panel_diskspace_admins` ( `mysql` bigint(30) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `adminid` (`adminid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -786,7 +786,7 @@ CREATE TABLE `panel_languages` ( `iso` char(3) NOT NULL DEFAULT 'foo', `file` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -809,7 +809,7 @@ CREATE TABLE IF NOT EXISTS `panel_syslog` ( `user` varchar(50) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`logid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -830,7 +830,7 @@ CREATE TABLE `panel_fpmdaemons` ( PRIMARY KEY (`id`), UNIQUE KEY `reload` (`reload_cmd`), UNIQUE KEY `config` (`config_dir`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -865,7 +865,7 @@ CREATE TABLE `panel_phpconfigs` ( `limit_extensions` varchar(255) NOT NULL default '.php', PRIMARY KEY (`id`), KEY `fpmsettingid` (`fpmsettingid`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -885,7 +885,7 @@ CREATE TABLE IF NOT EXISTS `cronjobs_run` ( `isactive` tinyint(1) DEFAULT '1', `desc_lng_key` varchar(100) NOT NULL DEFAULT 'cron_unknown_desc', PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `cronclass`, `interval`, `isactive`, `desc_lng_key`) VALUES @@ -910,7 +910,7 @@ CREATE TABLE IF NOT EXISTS `ftp_quotalimits` ( `files_in_avail` int(10) unsigned NOT NULL, `files_out_avail` int(10) unsigned NOT NULL, `files_xfer_avail` int(10) unsigned NOT NULL -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -929,7 +929,7 @@ CREATE TABLE IF NOT EXISTS `ftp_quotatallies` ( `files_in_used` int(10) unsigned NOT NULL, `files_out_used` int(10) unsigned NOT NULL, `files_xfer_used` int(10) unsigned NOT NULL -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -940,7 +940,7 @@ CREATE TABLE IF NOT EXISTS `redirect_codes` ( `desc` varchar(200) NOT NULL, `enabled` tinyint(1) DEFAULT '1', PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; @@ -958,7 +958,7 @@ CREATE TABLE IF NOT EXISTS `domain_redirect_codes` ( `rid` int(5) NOT NULL, `did` int(11) unsigned NOT NULL, UNIQUE KEY `rc` (`rid`, `did`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `domain_ssl_settings`; @@ -973,7 +973,7 @@ CREATE TABLE IF NOT EXISTS `domain_ssl_settings` ( `ssl_fullchain_file` mediumtext, `expirationdate` datetime DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `panel_domaintoip`; @@ -981,7 +981,7 @@ CREATE TABLE IF NOT EXISTS `panel_domaintoip` ( `id_domain` int(11) unsigned NOT NULL, `id_ipandports` int(11) unsigned NOT NULL, PRIMARY KEY (`id_domain`,`id_ipandports`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `domain_dns_entries`; @@ -994,7 +994,7 @@ CREATE TABLE `domain_dns_entries` ( `ttl` int(11) NOT NULL DEFAULT '18000', `prio` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `panel_plans`; @@ -1007,7 +1007,7 @@ CREATE TABLE `panel_plans` ( `ts` int(15) NOT NULL default '0', PRIMARY KEY (id), KEY adminid (adminid) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; DROP TABLE IF EXISTS `api_keys`; @@ -1022,5 +1022,5 @@ CREATE TABLE `api_keys` ( PRIMARY KEY (id), KEY adminid (adminid), KEY customerid (customerid) -) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; diff --git a/install/updates/froxlor/0.10/update_0.10.inc.php b/install/updates/froxlor/0.10/update_0.10.inc.php index 2dc3e32a..c4796636 100644 --- a/install/updates/froxlor/0.10/update_0.10.inc.php +++ b/install/updates/froxlor/0.10/update_0.10.inc.php @@ -238,5 +238,20 @@ if (\Froxlor\Froxlor::isDatabaseVersion('201902210')) { // set correct version for people that have tested 0.10.0 before \Froxlor\Froxlor::updateToVersion('0.10.0-rc1'); - \Froxlor\Froxlor::updateToDbVersion('201904100'); + \Froxlor\Froxlor::updateToDbVersion('201904100'); +} + +if (\Froxlor\Froxlor::isDatabaseVersion('201904100')) { + + showUpdateStep("Converting all MyISAM tables to InnoDB"); + Database::needRoot(true); + Database::needSqlData(); + $sql_data = Database::getSqlData(); + $result = Database::query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '" . $sql_data['db'] . "' AND ENGINE = 'MyISAM'"); + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + Database::query("ALTER TABLE `" . $row['TABLE_NAME'] . "` ENGINE=INNODB"); + } + lastStepStatus(0); + + \Froxlor\Froxlor::updateToDbVersion('201904250'); } diff --git a/lib/Froxlor/Froxlor.php b/lib/Froxlor/Froxlor.php index 2f0e732a..99934a6d 100644 --- a/lib/Froxlor/Froxlor.php +++ b/lib/Froxlor/Froxlor.php @@ -10,7 +10,7 @@ final class Froxlor const VERSION = '0.10.0-rc1'; // Database version (YYYYMMDDC where C is a daily counter) - const DBVERSION = '201904100'; + const DBVERSION = '201904250'; // Distribution branding-tag (used for Debian etc.) const BRANDING = '';