After I do compare between my 2.4 with automatic upgrade to 3.0 <=> default 3.0 database, here is the sql comparison query:
After I run this query to my 2.4 with automatic upgrade 3.0, and the site run well.
USE `xxxxxx`;
/* Foreign Keys must be dropped in the target to ensure that requires changes can be done*/
ALTER TABLE `oc_t_category_description` DROP FOREIGN KEY `oc_t_category_description_ibfk_1` ;
ALTER TABLE `oc_t_category_description` DROP FOREIGN KEY `oc_t_category_description_ibfk_2` ;
ALTER TABLE `oc_t_item_location` DROP FOREIGN KEY `oc_t_item_location_ibfk_6` ;
ALTER TABLE `oc_t_user` DROP FOREIGN KEY `oc_t_user_ibfk_2` ;
ALTER TABLE `oc_t_user` DROP FOREIGN KEY `oc_t_user_ibfk_3` ;
ALTER TABLE `oc_t_user` DROP FOREIGN KEY `oc_t_user_ibfk_4` ;
ALTER TABLE `oc_t_user` DROP FOREIGN KEY `oc_t_user_ibfk_5` ;
/* Alter table in target */
ALTER TABLE `oc_t_category_description`
CHANGE `s_name` `s_name` VARCHAR(100) COLLATE utf8_general_ci NULL AFTER `fk_c_locale_code`;
/* Alter table in target */
ALTER TABLE `oc_t_user`
CHANGE `b_company` `b_company` TINYINT(1) NOT NULL DEFAULT '0' AFTER `d_coord_long`,
CHANGE `i_items` `i_items` INT(10) UNSIGNED NULL DEFAULT '0' AFTER `b_company`,
CHANGE `i_comments` `i_comments` INT(10) UNSIGNED NULL DEFAULT '0' AFTER `i_items`,
CHANGE `dt_access_date` `dt_access_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `i_comments`,
CHANGE `s_access_ip` `s_access_ip` VARCHAR(15) COLLATE utf8_general_ci NOT NULL DEFAULT '' AFTER `dt_access_date`,
DROP COLUMN `i_permissions`;
/* Alter ForeignKey(s)in target */
ALTER TABLE `oc_t_item_location`
ADD CONSTRAINT `oc_t_item_location_ibfk_2`
FOREIGN KEY (`fk_c_country_code`) REFERENCES `oc_t_country` (`pk_c_code`);
/* Alter ForeignKey(s)in target */
ALTER TABLE `oc_t_user`
ADD CONSTRAINT `oc_t_user_ibfk_1`
FOREIGN KEY (`fk_c_country_code`) REFERENCES `oc_t_country` (`pk_c_code`);
/* The foreign keys that were dropped are now re-created*/
ALTER TABLE `oc_t_category_description`
ADD CONSTRAINT `oc_t_category_description_ibfk_1`
FOREIGN KEY (`fk_i_category_id`) REFERENCES `oc_t_category` (`pk_i_id`);
ALTER TABLE `oc_t_category_description`
ADD CONSTRAINT `oc_t_category_description_ibfk_2`
FOREIGN KEY (`fk_c_locale_code`) REFERENCES `oc_t_locale` (`pk_c_code`);
ALTER TABLE `oc_t_user`
ADD CONSTRAINT `oc_t_user_ibfk_2`
FOREIGN KEY (`fk_i_region_id`) REFERENCES `oc_t_region` (`pk_i_id`);
ALTER TABLE `oc_t_user`
ADD CONSTRAINT `oc_t_user_ibfk_3`
FOREIGN KEY (`fk_i_city_id`) REFERENCES `oc_t_city` (`pk_i_id`);
ALTER TABLE `oc_t_user`
ADD CONSTRAINT `oc_t_user_ibfk_4`
FOREIGN KEY (`fk_i_city_area_id`) REFERENCES `oc_t_city_area` (`pk_i_id`);