# 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.5.5 to the new version 1.5.
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 /home/lark/public_html/track/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.
ALTER TABLE piwik_user CHANGE date_registered date_registered TIMESTAMP NULL;
ALTER TABLE piwik_site CHANGE ts_created ts_created TIMESTAMP NULL;
ALTER TABLE piwik_site ADD `timezone` VARCHAR( 50 ) NOT NULL AFTER `ts_created` ;;
UPDATE piwik_site SET `timezone` = "UTC";;
ALTER TABLE piwik_site ADD currency CHAR( 3 ) NOT NULL AFTER `timezone` ;;
UPDATE piwik_site SET `currency` = "USD";;
ALTER TABLE piwik_site ADD `excluded_ips` TEXT NOT NULL AFTER `currency` ;;
ALTER TABLE piwik_site ADD excluded_parameters VARCHAR( 255 ) NOT NULL AFTER `excluded_ips` ;;
ALTER TABLE piwik_log_visit ADD INDEX `index_idsite_datetime_config` ( `idsite` , `visit_last_action_time` , `config_md5config` ( 8 ) ) ;;
ALTER TABLE piwik_log_visit ADD INDEX index_idsite_idvisit (idsite, idvisit) ;;
ALTER TABLE piwik_log_conversion DROP INDEX index_idsite_date;
ALTER TABLE piwik_log_conversion DROP visit_server_date;;
ALTER TABLE piwik_log_conversion ADD INDEX index_idsite_datetime ( `idsite` , `server_time` );
ALTER TABLE `piwik_log_visit` CHANGE `location_ip` `location_ip` INT UNSIGNED NOT NULL;
ALTER TABLE `piwik_logger_api_call` CHANGE `caller_ip` `caller_ip` INT UNSIGNED;
ALTER TABLE `piwik_option` CHANGE `option_name` `option_name` VARCHAR(255) NOT NULL;
UPDATE piwik_site SET timezone = "UTC" WHERE timezone IN ("Africa/Dar_es_Salaam","Africa/Porto-Novo","America/Argentina/ComodRivadavia","America/Blanc-Sablon","America/Knox_IN","America/Port-au-Prince","America/Port_of_Spain","Antarctica/DumontDUrville","Antarctica/McMurdo","Australia/ACT","Australia/LHI","Australia/NSW","Brazil/DeNoronha","Canada/East-Saskatchewan","Chile/EasterIsland","CST6CDT","Cuba","Egypt","Eire","EST5EDT","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/UCT","Etc/UTC","Europe/Isle_of_Man","Factory","GB","GB-Eire","GMT0","Greenwich","Hongkong","Iceland","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","Mexico/BajaNorte","Mexico/BajaSur","MST7MDT","Navajo","NZ","NZ-CHAT","Poland","Portugal","PRC","PST8PDT","ROC","ROK","Singapore","Turkey","UCT","Universal","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Pacific-New","US/Samoa","W-SU","Zulu");
UPDATE `piwik_option` SET option_value = "UTC" WHERE option_name = "SitesManager_DefaultTimezone" AND option_value IN ("Africa/Dar_es_Salaam","Africa/Porto-Novo","America/Argentina/ComodRivadavia","America/Blanc-Sablon","America/Knox_IN","America/Port-au-Prince","America/Port_of_Spain","Antarctica/DumontDUrville","Antarctica/McMurdo","Australia/ACT","Australia/LHI","Australia/NSW","Brazil/DeNoronha","Canada/East-Saskatchewan","Chile/EasterIsland","CST6CDT","Cuba","Egypt","Eire","EST5EDT","Etc/GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/UCT","Etc/UTC","Europe/Isle_of_Man","Factory","GB","GB-Eire","GMT0","Greenwich","Hongkong","Iceland","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","Mexico/BajaNorte","Mexico/BajaSur","MST7MDT","Navajo","NZ","NZ-CHAT","Poland","Portugal","PRC","PST8PDT","ROC","ROK","Singapore","Turkey","UCT","Universal","US/Alaska","US/Aleutian","US/Arizona","US/Central","US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan","US/Mountain","US/Pacific","US/Pacific-New","US/Samoa","W-SU","Zulu");
ALTER TABLE `piwik_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 `piwik_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 `piwik_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 piwik_log_visit SET idvisitor = binary(unhex(substring(visitor_idcookie,1,16))), config_id = binary(unhex(substring(config_md5config,1,16))) ;
UPDATE piwik_log_conversion SET idvisitor = binary(unhex(substring(visitor_idcookie,1,16))) ;
ALTER TABLE `piwik_log_visit` DROP visitor_idcookie, DROP config_md5config ;
ALTER TABLE `piwik_log_conversion` DROP visitor_idcookie ;
ALTER TABLE `piwik_log_visit` ADD INDEX `index_idsite_datetime_config` (idsite, visit_last_action_time, config_id) ;
UPDATE piwik_log_link_visit_action as action, piwik_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 `piwik_log_link_visit_action` CHANGE `server_time` `server_time` DATETIME NOT NULL ;
ALTER TABLE `piwik_option` ADD INDEX ( `autoload` ) ;
ALTER TABLE `piwik_site` ADD `group` VARCHAR( 250 ) NOT NULL;
ALTER DATABASE `lark_piwik` DEFAULT CHARACTER SET utf8;
ALTER TABLE `piwik_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 `piwik_goal` ADD `allow_multiple` tinyint(4) NOT NULL AFTER case_sensitive;
ALTER TABLE `piwik_log_conversion` ADD buster int unsigned NOT NULL AFTER revenue, DROP PRIMARY KEY, ADD PRIMARY KEY (idvisit, idgoal, buster);
ALTER TABLE `piwik_log_visit` ADD INDEX index_idsite_idvisitor (idsite, idvisitor);
ALTER TABLE `piwik_pdf` ADD COLUMN `format` VARCHAR(10);
UPDATE `piwik_pdf` SET format = "pdf";
SET sql_mode='';
ALTER TABLE piwik_log_visit MODIFY location_ip VARBINARY(16) NOT NULL;
ALTER TABLE piwik_logger_api_call MODIFY caller_ip VARBINARY(16) NOT NULL;
UPDATE piwik_log_visit SET location_ip = UNHEX(LPAD(HEX(CONVERT(location_ip, UNSIGNED)), 8, '0'));
UPDATE piwik_logger_api_call SET caller_ip = UNHEX(LPAD(HEX(CONVERT(caller_ip, UNSIGNED)), 8, '0'));
CREATE TABLE `piwik_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 `piwik_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 `piwik_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 `piwik_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 `piwik_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 `piwik_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 `piwik_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 `piwik_site` ADD ecommerce TINYINT DEFAULT 0;
CREATE TABLE `piwik_session` ( id CHAR(32) NOT NULL, modified INTEGER, lifetime INTEGER, data TEXT, PRIMARY KEY ( id ) ) DEFAULT CHARSET=utf8;
UPDATE `piwik_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.