Opencart 2.X 升级 3.X
2018-01-27 本文已影响255人
___n
先下载3.x版本文件进行安装,然后同步数据到新的数据库
注意下面的表是需要变动的,同步时可以先不同步下面的表
ALTER TABLE `oc_setting`
MODIFY COLUMN `code` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `store_id`,
MODIFY COLUMN `key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `code`;
ALTER TABLE `oc_theme`
MODIFY COLUMN `code` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `route`,
ADD COLUMN `date_added` datetime NOT NULL AFTER `code`;
ALTER TABLE `oc_translation`
ADD COLUMN `date_added` datetime NOT NULL AFTER `value`;
ALTER TABLE `oc_api`
CHANGE `name` `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `oc_api_session`
DROP COLUMN `token`,
DROP COLUMN `session_name`;
ALTER TABLE `oc_currency`
MODIFY COLUMN `value` double(15,8) NOT NULL AFTER `decimal_place`;
ALTER TABLE `oc_custom_field`
MODIFY COLUMN `location` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `validation`;
ALTER TABLE `oc_customer`
DROP COLUMN `approved`;
ALTER TABLE `oc_event`
DROP COLUMN `date_added`,
MODIFY COLUMN `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `event_id`,
ADD COLUMN `sort_order` int(3) NOT NULL AFTER `status`;
UPDATE `oc_event` SET sort_order = 0;
ALTER TABLE `oc_geo_zone`
MODIFY COLUMN `date_added` datetime NOT NULL AFTER `description`,
MODIFY COLUMN `date_modified` datetime NOT NULL AFTER `date_added`;
ALTER TABLE `oc_information_description`
MODIFY COLUMN `description` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `title`;
ALTER TABLE `oc_modification`
ADD COLUMN `extension_install_id` int(11) NOT NULL AFTER `modification_id`;
ALTER TABLE `oc_order_product`
ADD KEY `order_id`(`order_id`) USING BTREE;
CREATE TABLE `oc_seo_url` (
`seo_url_id` int(11) NOT NULL AUTO_INCREMENT,
`store_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`query` varchar(255) NOT NULL,
`keyword` varchar(255) NOT NULL,
PRIMARY KEY (`seo_url_id`),
KEY `query` (`query`),
KEY `keyword` (`keyword`)
) ENGINE=InnoDB AUTO_INCREMENT=844 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_session` (
`session_id` varchar(32) NOT NULL,
`data` text NOT NULL,
`expire` datetime NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `oc_shipping_courier` (
`shipping_courier_id` int(11) NOT NULL,
`shipping_courier_code` varchar(255) NOT NULL DEFAULT '',
`shipping_courier_name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`shipping_courier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_statistics` (
`statistics_id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(64) NOT NULL,
`value` decimal(15,4) NOT NULL,
PRIMARY KEY (`statistics_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_customer_affiliate` (
`customer_id` int(11) NOT NULL,
`company` varchar(40) NOT NULL,
`website` varchar(255) NOT NULL,
`tracking` varchar(64) NOT NULL,
`commission` decimal(4,2) NOT NULL DEFAULT '0.00',
`tax` varchar(64) NOT NULL,
`payment` varchar(6) NOT NULL,
`cheque` varchar(100) NOT NULL,
`paypal` varchar(64) NOT NULL,
`bank_name` varchar(64) NOT NULL,
`bank_branch_number` varchar(64) NOT NULL,
`bank_swift_code` varchar(64) NOT NULL,
`bank_account_name` varchar(64) NOT NULL,
`bank_account_number` varchar(64) NOT NULL,
`custom_field` text NOT NULL,
`status` tinyint(1) NOT NULL,
`date_added` datetime NOT NULL,
PRIMARY KEY (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_customer_approval` (
`customer_approval_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) NOT NULL,
`type` varchar(9) NOT NULL,
`date_added` datetime NOT NULL,
PRIMARY KEY (`customer_approval_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_extension_install` (
`extension_install_id` int(11) NOT NULL AUTO_INCREMENT,
`extension_download_id` int(11) NOT NULL,
`filename` varchar(255) NOT NULL,
`date_added` datetime NOT NULL,
PRIMARY KEY (`extension_install_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_extension_path` (
`extension_path_id` int(11) NOT NULL AUTO_INCREMENT,
`extension_install_id` int(11) NOT NULL,
`path` varchar(255) NOT NULL,
`date_added` datetime NOT NULL,
PRIMARY KEY (`extension_path_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
CREATE TABLE `oc_order_shipment` (
`order_shipment_id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL,
`date_added` datetime NOT NULL,
`shipping_courier_id` varchar(255) NOT NULL DEFAULT '',
`tracking_number` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`order_shipment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
# 如果没有装插件,就没有一些多余的库,下面的库是需要删除的,删除的时候注意里面的数据有没有用。
DROP TABLE `oc_affiliate`;
DROP TABLE `oc_order_custom_field`;
DROP TABLE `oc_menu_module`;
DROP TABLE `oc_url_alias`;
DROP TABLE `oc_menu_description`;
DROP TABLE `oc_menu`;
DROP TABLE `oc_affiliate_login`;
DROP TABLE `oc_affiliate_transaction`;
DROP TABLE `oc_affiliate_activity`;
DROP TABLE `oc_cardinity_order`;
DROP TABLE `oc_amazon_login_pay_order`;
DROP TABLE `oc_g2apay_order_transaction`;
DROP TABLE `oc_amazon_login_pay_order_total_tax`;
DROP TABLE `oc_globalpay_order_transaction`;
DROP TABLE `oc_globalpay_order`;
DROP TABLE `oc_amazon_login_pay_order_transaction`;
DROP TABLE `oc_g2apay_order`;
DROP TABLE `oc_globalpay_remote_order`;
DROP TABLE `oc_globalpay_remote_order_transaction`;
完成已后记得 把 oc_setting > config_theme 值改为 default , 还有把插件管理里面的模板删掉,重新添加一下