1) make soft link of image folder from
main shop to
new shop
ln -fs main_shop/img new_shop/img
2)Rename
new_shop_db and
main_shop_db to your names in sql procedure and run sql script
DELIMITER $$
DROP PROCEDURE if exists make_linked_tables $$
CREATE PROCEDURE make_linked_tables()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE str VARCHAR(250);
DECLARE cur CURSOR FOR
SELECT table_name FROM information_schema.tables WHERE
table_schema = 'new_shop_db' AND (table_name LIKE 'ps_product%'
OR table_name LIKE 'ps_category%')
UNION
SELECT 'ps_image'
UNION
SELECT 'ps_image_lang'
;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
REPEAT
FETCH cur INTO str;
SET @s = CONCAT("RENAME TABLE ", str," TO ");
SET @s = CONCAT(@s,str,"_orig");
PREPARE sth FROM @s;
EXECUTE sth;
DEALLOCATE PREPARE sth;
SET @s = CONCAT("CREATE VIEW ",str," as SELECT * FROM main_shop_db.",str);
PREPARE sth2 FROM @s;
EXECUTE sth2;
DEALLOCATE PREPARE sth2;
UNTIL done END REPEAT;
CLOSE cur;
END$$
DELIMITER ;
3)Run procedure
CALL make_linked_tables();
DROP PROCEDURE if exists make_linked_tables;
Manually customize categories list of new shop:
drop table if exists ps_category;
create OR replace view ps_category AS
SELECT * FROM MAIN_SHOP_DB.`ps_category` WHERE
id_category in ( 1,17,28,35) OR id_parent in (17,28,35);
drop table if exists ps_category_group;
create OR replace view ps_category_group AS
SELECT * FROM MAIN_SHOP_DB.`ps_category_group` WHERE
id_category in ( SELECT id_category FROM `ps_category` ) ;
drop table if exists ps_category_lang;
create OR replace view ps_category_lang AS
SELECT * FROM MAIN_SHOP_DB.`ps_category_lang` WHERE
id_category in ( SELECT id_category FROM `ps_category`);
drop table if exists ps_category_product;
create OR replace view ps_category_product AS
SELECT * FROM MAIN_SHOP_DB.`ps_category_product` WHERE
id_category in ( SELECT id_category FROM `ps_category`) ;
There are id_category = 1 - main category(required), 17(subcategory optional) ....
Комментариев нет:
Отправить комментарий