# Open Source Web AnalyticsDatabase Upgrade Required
Your Piwik database is out-of-date, and must be upgraded before you can continue.
Piwik database will be upgraded from version 0.2.9 to the new version 1.5.1.
Important notes for large Piwik installations
- If you have a large Piwik database, updates might take too long to run in the browser. In this situation, you can execute the updates from your command line:
php /var/www/html/dhcp42/piwik/index.php -- "module=CoreUpdater" - It is also recommended for high traffic Piwik servers to momentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode.
- If you are not able to use the command line updater and if Piwik fails to upgrade (due to a timeout of the database, a browser timeout, or any other issue), you could manually execute the SQL queries to update Piwik.
› Click here to view and copy the list of SQL queries that will get executed
# Note: if you manually execute these queries, it is expected that some of them fail. In this case, simply ignore the errors, and run the next ones in the list.
CREATE TABLE `option` ( idoption BIGINT NOT NULL AUTO_INCREMENT , option_name VARCHAR( 64 ) NOT NULL , option_value LONGTEXT NOT NULL , PRIMARY KEY ( idoption , option_name ) );
ALTER IGNORE TABLE `log_visit` CHANGE `location_provider` `location_provider` VARCHAR( 100 ) DEFAULT NULL;
ALTER TABLE `logger_api_call` CHANGE `parameter_names_default_values` `parameter_names_default_values` TEXT, CHANGE `parameter_values` `parameter_values` TEXT, CHANGE `returned_value` `returned_value` TEXT;
ALTER TABLE `logger_error` CHANGE `message` `message` TEXT;
ALTER TABLE `logger_exception` CHANGE `message` `message` TEXT;
ALTER TABLE `logger_message` CHANGE `message` `message` TEXT;
ALTER IGNORE TABLE `site` CHANGE `feedburnerName` `feedburnerName` VARCHAR( 100 ) DEFAULT NULL;
ALTER TABLE `site` CHANGE `ts_created` `ts_created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
ALTER TABLE `log_visit` DROP `config_color_depth`;
DROP INDEX index_idaction ON `log_action`;
DROP TABLE IF EXISTS `option`;
CREATE TABLE `option` ( option_name VARCHAR( 64 ) NOT NULL , option_value LONGTEXT NOT NULL , autoload TINYINT NOT NULL DEFAULT '1', PRIMARY KEY ( option_name ) );
CREATE INDEX index_type_name ON log_action (type, name(15));
CREATE INDEX index_idsite_date ON log_visit (idsite, visit_server_date);
DROP INDEX index_idsite ON log_visit;
DROP INDEX index_visit_server_date ON log_visit;
ALTER TABLE `log_visit` ADD `visit_goal_converted` VARCHAR( 1 ) NOT NULL AFTER `visit_total_time`;
ALTER IGNORE TABLE `log_visit` CHANGE `visit_goal_converted` `visit_goal_converted` TINYINT(1) NOT NULL;
CREATE TABLE `goal` ( `idsite` int(11) NOT NULL, `idgoal` int(11) NOT NULL, `name` varchar(50) NOT NULL, `match_attribute` varchar(20) NOT NULL, `pattern` varchar(255) NOT NULL, `pattern_type` varchar(10) NOT NULL, `case_sensitive` tinyint(4) NOT NULL, `revenue` float NOT NULL, `deleted` tinyint(4) NOT NULL default '0', PRIMARY KEY (`idsite`,`idgoal`) );
CREATE TABLE `log_conversion` ( `idvisit` int(10) unsigned NOT NULL, `idsite` int(10) unsigned NOT NULL, `visitor_idcookie` char(32) NOT NULL, `server_time` datetime NOT NULL, `visit_server_date` date NOT NULL, `idaction` int(11) NOT NULL, `idlink_va` int(11) NOT NULL, `referer_idvisit` int(10) unsigned default NULL, `referer_visit_server_date` date default NULL, `referer_type` int(10) unsigned default NULL, `referer_name` varchar(70) default NULL, `referer_keyword` varchar(255) default NULL, `visitor_returning` tinyint(1) NOT NULL, `location_country` char(3) NOT NULL, `location_continent` char(3) NOT NULL, `url` text NOT NULL, `idgoal` int(10) unsigned NOT NULL, `revenue` float default NULL, PRIMARY KEY (`idvisit`,`idgoal`), KEY `index_idsite_date` (`idsite`,`visit_server_date`) );
CREATE INDEX index_all ON archive_numeric_2010_01 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2010_08 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2010_09 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2010_10 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2010_11 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2010_12 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_01 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_02 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_03 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_04 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_05 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_06 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_numeric_2011_07 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_01 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_08 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_09 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_10 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_11 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2010_12 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_01 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_02 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_03 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_04 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_05 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_06 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
CREATE INDEX index_all ON archive_blob_2011_07 (`idsite`,`date1`,`date2`,`name`,`ts_archived`);
ALTER TABLE `access` CHANGE `login` `login` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `user` CHANGE `login` `login` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `user_dashboard` CHANGE `login` `login` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `user_language` CHANGE `login` `login` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `user_dashboard` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `user_language` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `user` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `access` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `site` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `site_url` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `goal` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `logger_message` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `logger_api_call` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `logger_error` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `logger_exception` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_action` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_visit` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_conversion_item` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_conversion` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_link_visit_action` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `log_profiling` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `option` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `session` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_01` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_08` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_09` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_10` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_11` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2010_12` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_01` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_02` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_03` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_04` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_05` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_06` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_numeric_2011_07` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_01` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_08` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_09` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_10` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_11` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2010_12` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_01` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_02` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_03` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_04` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_05` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_06` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `archive_blob_2011_07` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci ;
ALTER TABLE `user_dashboard` CHANGE `layout` `layout` TEXT NOT NULL;
DELETE FROM `user_dashboard` WHERE layout LIKE '%.getLastVisitsGraph%' OR layout LIKE '%.getLastVisitsReturningGraph%';
UPDATE `log_visit` SET location_ip=location_ip+CAST(POW(2,32) AS UNSIGNED) WHERE location_ip < 0;
ALTER TABLE `log_visit` CHANGE `location_ip` `location_ip` BIGINT UNSIGNED NOT NULL;
UPDATE `logger_api_call` SET caller_ip=caller_ip+CAST(POW(2,32) AS UNSIGNED) WHERE caller_ip < 0;
ALTER TABLE `logger_api_call` CHANGE `caller_ip` `caller_ip` BIGINT UNSIGNED;
ALTER TABLE `log_conversion` CHANGE `idlink_va` `idlink_va` INT(11) DEFAULT NULL;
ALTER TABLE `log_conversion` CHANGE `idaction` `idaction` INT(11) DEFAULT NULL;
ALTER TABLE `log_visit` ADD `config_java` TINYINT(1) NOT NULL AFTER `config_flash`;
ALTER TABLE `log_visit` ADD `config_quicktime` TINYINT(1) NOT NULL AFTER `config_director`;
ALTER TABLE `log_visit` ADD `config_gears` TINYINT(1) NOT NULL AFTER `config_windowsmedia`, ADD `config_silverlight` TINYINT(1) NOT NULL AFTER `config_gears`;
ALTER TABLE log_action ADD COLUMN `hash` INTEGER(10) UNSIGNED NOT NULL AFTER `name`;;
ALTER TABLE log_visit CHANGE visit_exit_idaction visit_exit_idaction_url INTEGER(11) NOT NULL;;
ALTER TABLE log_visit CHANGE visit_entry_idaction visit_entry_idaction_url INTEGER(11) NOT NULL;;
ALTER TABLE log_link_visit_action CHANGE `idaction_ref` `idaction_url_ref` INTEGER(10) UNSIGNED NOT NULL;;
ALTER TABLE log_link_visit_action CHANGE `idaction` `idaction_url` INTEGER(10) UNSIGNED NOT NULL;;
ALTER TABLE log_link_visit_action ADD COLUMN `idaction_name` INTEGER(10) UNSIGNED AFTER `idaction_url_ref`;;
ALTER TABLE log_conversion CHANGE `idaction` `idaction_url` INTEGER(11) UNSIGNED NOT NULL;;
UPDATE log_action SET `hash` = CRC32(name);;
CREATE INDEX index_type_hash ON log_action (type, hash);;
DROP INDEX index_type_name ON log_action;;
ALTER TABLE `log_action` CHANGE `name` `name` TEXT;
DROP INDEX index_idsite_date ON log_visit;
CREATE INDEX index_idsite_date_config ON log_visit (idsite, visit_server_date, config_md5config(8));
DROP INDEX index_all ON archive_numeric_2010_01;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_01 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2010_08;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_08 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2010_09;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_09 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2010_10;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_10 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2010_11;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_11 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2010_12;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2010_12 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_01;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_01 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_02;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_02 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_03;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_03 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_04;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_04 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_05;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_05 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_06;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_06 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_numeric_2011_07;
CREATE INDEX index_idsite_dates_period ON archive_numeric_2011_07 (idsite, date1, date2, period);
DROP INDEX index_all ON archive_blob_2010_01;
DROP INDEX index_all ON archive_blob_2010_08;
DROP INDEX index_all ON archive_blob_2010_09;
DROP INDEX index_all ON archive_blob_2010_10;
DROP INDEX index_all ON archive_blob_2010_11;
DROP INDEX index_all ON archive_blob_2010_12;
DROP INDEX index_all ON archive_blob_2011_01;
DROP INDEX index_all ON archive_blob_2011_02;
DROP INDEX index_all ON archive_blob_2011_03;
DROP INDEX index_all ON archive_blob_2011_04;
DROP INDEX index_all ON archive_blob_2011_05;
DROP INDEX index_all ON archive_blob_2011_06;
DROP INDEX index_all ON archive_blob_2011_07;
ALTER TABLE user CHANGE date_registered date_registered TIMESTAMP NULL;
ALTER TABLE site CHANGE ts_created ts_created TIMESTAMP NULL;
ALTER TABLE site ADD `timezone` VARCHAR( 50 ) NOT NULL AFTER `ts_created` ;;
UPDATE site SET `timezone` = "UTC";;
ALTER TABLE site ADD currency CHAR( 3 ) NOT NULL AFTER `timezone` ;;
UPDATE site SET `currency` = "USD";;
ALTER TABLE site ADD `excluded_ips` TEXT NOT NULL AFTER `currency` ;;
ALTER TABLE site ADD excluded_parameters VARCHAR( 255 ) NOT NULL AFTER `excluded_ips` ;;
ALTER TABLE log_visit ADD INDEX `index_idsite_datetime_config` ( `idsite` , `visit_last_action_time` , `config_md5config` ( 8 ) ) ;;
ALTER TABLE log_visit ADD INDEX index_idsite_idvisit (idsite, idvisit) ;;
ALTER TABLE log_conversion DROP INDEX index_idsite_date;
ALTER TABLE log_conversion DROP visit_server_date;;
ALTER TABLE log_conversion ADD INDEX index_idsite_datetime ( `idsite` , `server_time` );
ALTER TABLE `log_visit` CHANGE `location_ip` `location_ip` INT UNSIGNED NOT NULL;
ALTER TABLE `logger_api_call` CHANGE `caller_ip` `caller_ip` INT UNSIGNED;
ALTER TABLE `option` CHANGE `option_name` `option_name` VARCHAR(255) NOT NULL;
UPDATE site SET timezone = "UTC" WHERE timezone IN ("");
UPDATE `option` SET option_value = "UTC" WHERE option_name = "SitesManager_DefaultTimezone" AND option_value IN ("");
ALTER TABLE `log_visit` DROP `visit_server_date`, DROP INDEX `index_idsite_date_config`, DROP INDEX `index_idsite_datetime_config`, ADD `visit_entry_idaction_name` INT UNSIGNED NOT NULL AFTER `visit_entry_idaction_url`, ADD `visit_exit_idaction_name` INT UNSIGNED NOT NULL AFTER `visit_exit_idaction_url`, CHANGE `visit_exit_idaction_url` `visit_exit_idaction_url` INT UNSIGNED NOT NULL, CHANGE `visit_entry_idaction_url` `visit_entry_idaction_url` INT UNSIGNED NOT NULL, CHANGE `referer_type` `referer_type` TINYINT UNSIGNED NULL DEFAULT NULL, ADD `idvisitor` BINARY(8) NOT NULL AFTER `idsite`, ADD visitor_count_visits SMALLINT(5) UNSIGNED NOT NULL AFTER `visitor_returning`, ADD visitor_days_since_last SMALLINT(5) UNSIGNED NOT NULL, ADD visitor_days_since_first SMALLINT(5) UNSIGNED NOT NULL, ADD `config_id` BINARY(8) NOT NULL AFTER `config_md5config`, ADD custom_var_k1 VARCHAR(100) DEFAULT NULL, ADD custom_var_v1 VARCHAR(100) DEFAULT NULL, ADD custom_var_k2 VARCHAR(100) DEFAULT NULL, ADD custom_var_v2 VARCHAR(100) DEFAULT NULL, ADD custom_var_k3 VARCHAR(100) DEFAULT NULL, ADD custom_var_v3 VARCHAR(100) DEFAULT NULL, ADD custom_var_k4 VARCHAR(100) DEFAULT NULL, ADD custom_var_v4 VARCHAR(100) DEFAULT NULL, ADD custom_var_k5 VARCHAR(100) DEFAULT NULL, ADD custom_var_v5 VARCHAR(100) DEFAULT NULL ;
ALTER TABLE `log_link_visit_action` ADD `idsite` INT( 10 ) UNSIGNED NOT NULL AFTER `idlink_va` , ADD `server_time` DATETIME AFTER `idsite`, ADD `idvisitor` BINARY(8) NOT NULL AFTER `idsite`, ADD `idaction_name_ref` INT UNSIGNED NOT NULL AFTER `idaction_name`, ADD INDEX `index_idsite_servertime` ( `idsite` , `server_time` ) ;
ALTER TABLE `log_conversion` DROP `referer_idvisit`, ADD `idvisitor` BINARY(8) NOT NULL AFTER `idsite`, ADD visitor_count_visits SMALLINT(5) UNSIGNED NOT NULL, ADD visitor_days_since_first SMALLINT(5) UNSIGNED NOT NULL, ADD custom_var_k1 VARCHAR(100) DEFAULT NULL, ADD custom_var_v1 VARCHAR(100) DEFAULT NULL, ADD custom_var_k2 VARCHAR(100) DEFAULT NULL, ADD custom_var_v2 VARCHAR(100) DEFAULT NULL, ADD custom_var_k3 VARCHAR(100) DEFAULT NULL, ADD custom_var_v3 VARCHAR(100) DEFAULT NULL, ADD custom_var_k4 VARCHAR(100) DEFAULT NULL, ADD custom_var_v4 VARCHAR(100) DEFAULT NULL, ADD custom_var_k5 VARCHAR(100) DEFAULT NULL, ADD custom_var_v5 VARCHAR(100) DEFAULT NULL ;
UPDATE log_visit SET idvisitor = binary(unhex(substring(visitor_idcookie,1,16))), config_id = binary(unhex(substring(config_md5config,1,16))) ;
UPDATE log_conversion SET idvisitor = binary(unhex(substring(visitor_idcookie,1,16))) ;
ALTER TABLE `log_visit` DROP visitor_idcookie, DROP config_md5config ;
ALTER TABLE `log_conversion` DROP visitor_idcookie ;
ALTER TABLE `log_visit` ADD INDEX `index_idsite_datetime_config` (idsite, visit_last_action_time, config_id) ;
UPDATE log_link_visit_action as action, log_visit as visit SET action.idsite = visit.idsite, action.server_time = visit.visit_last_action_time, action.idvisitor = visit.idvisitor WHERE action.idvisit=visit.idvisit ;
ALTER TABLE `log_link_visit_action` CHANGE `server_time` `server_time` DATETIME NOT NULL ;
ALTER TABLE `option` ADD INDEX ( `autoload` ) ;
ALTER TABLE `site` ADD `group` VARCHAR( 250 ) NOT NULL;
ALTER DATABASE `piwik` DEFAULT CHARACTER SET utf8;
ALTER TABLE `log_visit` DROP INDEX index_idsite_datetime_config, DROP INDEX index_idsite_idvisit, ADD INDEX index_idsite_config_datetime (idsite, config_id, visit_last_action_time), ADD INDEX index_idsite_datetime (idsite, visit_last_action_time);
ALTER TABLE `goal` ADD `allow_multiple` tinyint(4) NOT NULL AFTER case_sensitive;
ALTER TABLE `log_conversion` ADD buster int unsigned NOT NULL AFTER revenue, DROP PRIMARY KEY, ADD PRIMARY KEY (idvisit, idgoal, buster);
ALTER TABLE `log_visit` ADD INDEX index_idsite_idvisitor (idsite, idvisitor);
ALTER TABLE `pdf` ADD COLUMN `format` VARCHAR(10);
UPDATE `pdf` SET format = "pdf";
SET sql_mode='';
ALTER TABLE log_visit MODIFY location_ip VARBINARY(16) NOT NULL;
ALTER TABLE logger_api_call MODIFY caller_ip VARBINARY(16) NOT NULL;
UPDATE log_visit SET location_ip = UNHEX(LPAD(HEX(CONVERT(location_ip, UNSIGNED)), 8, '0'));
UPDATE logger_api_call SET caller_ip = UNHEX(LPAD(HEX(CONVERT(caller_ip, UNSIGNED)), 8, '0'));
CREATE TABLE `log_conversion_item` ( idsite int(10) UNSIGNED NOT NULL, idvisitor BINARY(8) NOT NULL, server_time DATETIME NOT NULL, idvisit INTEGER(10) UNSIGNED NOT NULL, idorder varchar(100) NOT NULL, idaction_sku INTEGER(10) UNSIGNED NOT NULL, idaction_name INTEGER(10) UNSIGNED NOT NULL, idaction_category INTEGER(10) UNSIGNED NOT NULL, price FLOAT NOT NULL, quantity INTEGER(10) UNSIGNED NOT NULL, deleted TINYINT(1) UNSIGNED NOT NULL, PRIMARY KEY(idvisit, idorder, idaction_sku), INDEX index_idsite_servertime ( idsite, server_time ) ) DEFAULT CHARSET=utf8 ;
ALTER IGNORE TABLE `log_visit` ADD visitor_days_since_order SMALLINT(5) UNSIGNED NOT NULL AFTER visitor_days_since_last, ADD visit_goal_buyer TINYINT(1) NOT NULL AFTER visit_goal_converted;
ALTER IGNORE TABLE `log_conversion` ADD visitor_days_since_order SMALLINT(5) UNSIGNED NOT NULL AFTER visitor_days_since_first, ADD idorder varchar(100) default NULL AFTER buster, ADD items SMALLINT UNSIGNED DEFAULT NULL, ADD revenue_subtotal float default NULL, ADD revenue_tax float default NULL, ADD revenue_shipping float default NULL, ADD revenue_discount float default NULL, ADD UNIQUE KEY unique_idsite_idorder (idsite, idorder), MODIFY idgoal int(10) NOT NULL;
ALTER TABLE `log_link_visit_action` ADD custom_var_k1 VARCHAR(100) DEFAULT NULL AFTER time_spent_ref_action, ADD custom_var_v1 VARCHAR(100) DEFAULT NULL, ADD custom_var_k2 VARCHAR(100) DEFAULT NULL, ADD custom_var_v2 VARCHAR(100) DEFAULT NULL, ADD custom_var_k3 VARCHAR(100) DEFAULT NULL, ADD custom_var_v3 VARCHAR(100) DEFAULT NULL, ADD custom_var_k4 VARCHAR(100) DEFAULT NULL, ADD custom_var_v4 VARCHAR(100) DEFAULT NULL, ADD custom_var_k5 VARCHAR(100) DEFAULT NULL, ADD custom_var_v5 VARCHAR(100) DEFAULT NULL;
ALTER TABLE `log_visit` CHANGE custom_var_k1 custom_var_k1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v1 custom_var_v1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k2 custom_var_k2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v2 custom_var_v2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k3 custom_var_k3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v3 custom_var_v3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k4 custom_var_k4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v4 custom_var_v4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k5 custom_var_k5 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v5 custom_var_v5 VARCHAR(100) DEFAULT NULL;
ALTER TABLE `log_conversion` CHANGE custom_var_k1 custom_var_k1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v1 custom_var_v1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k2 custom_var_k2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v2 custom_var_v2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k3 custom_var_k3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v3 custom_var_v3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k4 custom_var_k4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v4 custom_var_v4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k5 custom_var_k5 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v5 custom_var_v5 VARCHAR(100) DEFAULT NULL;
ALTER TABLE `log_link_visit_action` CHANGE custom_var_k1 custom_var_k1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v1 custom_var_v1 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k2 custom_var_k2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v2 custom_var_v2 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k3 custom_var_k3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v3 custom_var_v3 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k4 custom_var_k4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v4 custom_var_v4 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_k5 custom_var_k5 VARCHAR(100) DEFAULT NULL, CHANGE custom_var_v5 custom_var_v5 VARCHAR(100) DEFAULT NULL;
ALTER TABLE `site` ADD ecommerce TINYINT DEFAULT 0;
CREATE TABLE `session` ( id CHAR(32) NOT NULL, modified INTEGER, lifetime INTEGER, data TEXT, PRIMARY KEY ( id ) ) DEFAULT CHARSET=utf8;
UPDATE `option` SET option_value = '1.5-rc6' WHERE option_name = 'version_core';
Ready to go?
The database upgrade process may take a while, so please be patient.