How Can We Help?
Migración revive.portalesdenegocios.cl
Identificación de campañas activas
create table CJ_MIG_CAMPANAS_ACTIVAS as
select distinct campaignid, campaignname, clientid, clientname from
(
select rz.zoneid, rz.zonename, c.campaignname, c.clientid, cli.clientname, r.description, r.bannerid, r.campaignid
from rv_zones rz,
rv_ad_zone_assoc aza,
rv_banners r,
rv_campaigns c,
rv_clients cli
where rz.zoneid=aza.zone_id and aza.ad_id=r.bannerid and r.status=0 and r.campaignid=c.campaignid and c.clientid=cli.clientid and c.expire_time>now() and c.status=0
order by rz.zoneid, c.campaignid) a
Una vez creada la tabla en el servidor de origen, se exporta como sql y se crea en el servidor de destino.
Agregar columnas para identificar campaña y cliente de destino
En el servidor de destino, se agregan las siguiente columnas en la tabla CJ_MIG_CAMPANAS_ACTIVAS
migcampaignid mediumint(9)
migclientid mediumint(9)
Verificación de campañas ya copiadas
SELECT * FROM rv_campaigns r, CJ_MIG_CAMPANAS_ACTIVAS c WHERE r.campaignname=c.campaignname
Actualización de campos agregados en la data a migrar
/*ID DE CAMPAÑA*/
update CJ_MIG_CAMPANAS_ACTIVAS
set migcampaignid=IFNULL((select campaignid from rv_campaigns r WHERE r.campaignname=CJ_MIG_CAMPANAS_ACTIVAS.campaignname LIMIT 1),0)
/*ID DE CLIENTE*/
update CJ_MIG_CAMPANAS_ACTIVAS
set migclientid=150 where clientid=2;
update CJ_MIG_CAMPANAS_ACTIVAS
set migclientid=155 where clientid=3;
Extracción de Campañas Completas
create table CJ_MIG_CAMPANAS_COMPLETAS as
select rvc.* from rv_campaigns rvc, CJ_MIG_CAMPANAS_ACTIVAS cjc where rvc.campaignid=cjc.campaignid
La tabla creada se exporta en formato sql para ser ejecutada en el servidor de destino
Extracción de los banners de estas campañas
create table CJ_MIG_BANNERS_CAMPANA as
select rba.* from rv_banners rba, CJ_MIG_CAMPANAS_ACTIVAS cjc where rba.campaignid=cjc.campaignid
Extracción de restricciones de banners
create table CJ_MIG_ACLS_BANNER as
select rba.* from rv_acls rba, CJ_MIG_BANNERS_CAMPANA cjc where rba.bannerid=cjc.bannerid
Extracción de zonas asociadas a banners
create table CJ_MIG_ZONAS_BANNER as
select rba.* from rv_ad_zone_assoc rba, CJ_MIG_BANNERS_CAMPANA cjc where rba.ad_id=cjc.bannerid
Recordar actualizar los cálculos de prioridad del servidor
Marcar campañas cuyo registro ya fue creado en servidor destino
update CJ_MIG_CAMPANAS_ACTIVAS
set copiada=1
where migcampaignid<>0
Copiar registros de campañas que no fueron previamente copiadas al servidor de destino
INSERT INTO rv_campaigns(campaignname, clientid, views, clicks, conversions, priority, weight, target_impression, target_click, target_conversion, anonymous, companion, comments, revenue, revenue_type, updated, block, capping, session_capping, status, hosted_views, hosted_clicks, viewwindow, clickwindow, ecpm, min_impressions, ecpm_enabled, activate_time, expire_time, type, show_capped_no_cookie)
SELECT rcm.campaignname, rcc.migclientid, rcm.views, rcm.clicks, rcm.conversions, -1 priority,
1 weight, rcm.target_impression, rcm.target_click, rcm.target_conversion,
rcm.anonymous, rcm.companion, concat("[MIG]-",rcm.comments) comments,
null revenue, 1 revenue_type, rcm.updated, rcm.block, rcm.capping, rcm.session_capping, rcm.status, rcm.hosted_views, rcm.hosted_clicks, rcm.viewwindow, rcm.clickwindow, rcm.ecpm, rcm.min_impressions, rcm.ecpm_enabled, rcm.activate_time, rcm.expire_time, rcm.type, rcm.show_capped_no_cookie
FROM CJ_MIG_CAMPANAS_COMPLETAS rcm, CJ_MIG_CAMPANAS_ACTIVAS rcc WHERE rcm.campaignid=rcc.campaignid and rcc.copiada=0
Verificación de campañas copiadas (cantidad de)
select count(*) from rv_campaigns r where r.comments like "[MIG]-%"
Actualizar campaign ID en tabla campañas activas
update CJ_MIG_CAMPANAS_ACTIVAS
set migcampaignid=IFNULL((select campaignid from rv_campaigns r WHERE r.campaignname=CJ_MIG_CAMPANAS_ACTIVAS.campaignname LIMIT 1),0)
where copiada=0
Actualización de comentarios en rv_banners para identificar los previamente cargados
update rv_banners set comments="[PREVMIG]" where bannerid in (SELECT distinct bannerid FROM rv_banners r WHERE r.campaignid in (select b.migcampaignid from CJ_MIG_CAMPANAS_ACTIVAS b))
Actualizar migcampaignid en banners para respetar nuevo item padre en tabla rv_campaigns
Se agrega campo migcampaignid a tabla CJ_MIG_BANNERS_CAMPANAS y campo excluir para no tratar banner de 750×90

/* Se actualiza el migcampaign de los banners que se trataran*/
update CJ_MIG_BANNERS_CAMPANA
set migcampaignid=IFNULL((select migcampaignid from CJ_MIG_CAMPANAS_ACTIVAS r WHERE r.campaignid=CJ_MIG_BANNERS_CAMPANA.campaignid LIMIT 1),0)
WHERE excluir=0
Marcar con excluir = 1 a los banners de 750×90
update CJ_MIG_BANNERS_CAMPANA set excluir=1 WHERE width=750 and height=90
Marcar con excluir=0 a todas las zonas y ACLS que sean de banners que se excluyen
update CJ_MIG_ACLS_BANNER set excluir=1 WHERE bannerid in (select bannerid from CJ_MIG_BANNERS_CAMPANA where excluir=1);
update CJ_MIG_ZONAS_BANNER set excluir=1 WHERE ad_id in (select bannerid from CJ_MIG_BANNERS_CAMPANA where excluir=1);
SELECT excluir, count(*) FROM `CJ_MIG_ZONAS_BANNER` group by excluir;
SELECT excluir, count(*) FROM `CJ_MIG_ACLS_BANNER` group by excluir;
Generación de HTML para descarga de banners a migrar
select distinct img from(
select
concat('<img src="http://revive.portalesdenegocios.com/www/images/',filename,'"><br>') img
from CJ_MIG_BANNERS_CAMPANA where excluir=0) a
Se exporta desde phpmyadmin en formato csv para generar un documento html y luego guardarlo en un directorio. Luego se suben via FTP los materiales al directorio www/images del servidor de destino.
Inserción de Banners migrados en las campañas correctas del destino
Se realiza insert sin banner id pero apuntando al id de campaña correspondiente en servidor de destino. Se ajusta campo comments para reflejar id original de bannerid
/* Primero se copian */
INSERT INTO rv_banners(campaignid, contenttype, pluginversion, storagetype, filename, imageurl,
htmltemplate, htmlcache, width, height, weight, seq, target, url, alt, statustext,
bannertext, description, adserver, block, capping, session_capping, compiledlimitation, acl_plugins,
append, bannertype, alt_filename, alt_imageurl, alt_contenttype, comments, updated, acls_updated,
keyword, transparent, parameters, status, ext_bannertype, prepend, iframe_friendly)
SELECT migcampaignid, contenttype, pluginversion, storagetype, filename, imageurl, htmltemplate, htmlcache, width, height,
weight, seq, target, url, alt, statustext, bannertext, description, adserver, block,
capping, session_capping, compiledlimitation, acl_plugins, append, bannertype, alt_filename, alt_imageurl, alt_contenttype, concat(bannerid,'') comments,
updated, acls_updated, keyword, transparent, parameters, status, ext_bannertype, prepend, 0 iframefriendly
FROM CJ_MIG_BANNERS_CAMPANA WHERE excluir=0
/*Actualizacion de migbannerid*/
update CJ_MIG_BANNERS_CAMPANA set migbannerid=(select bannerid from rv_banners b where concat(CJ_MIG_BANNERS_CAMPANA.bannerid,'')=b.comments LIMIT 1) where excluir=0
Se actualiza ahora los nuevos id de banners para que los registros de zona y acls apunten correctamente a los banners
/* Comprobación de equivalencias*/
SELECT a.bannerid,a.migbannerid, b.bannerid, b.comments FROM CJ_MIG_ACLS_BANNER a, rv_banners b WHERE a.excluir=0 and concat(a.bannerid,'')=b.comments
/* actualizacion de banner id de destino */
update CJ_MIG_ACLS_BANNER set migbannerid=(select bannerid from rv_banners b where concat(CJ_MIG_ACLS_BANNER.bannerid,'')=b.comments LIMIT 1)
where excluir=0
/* Comprobación de zonas */
SELECT a.ad_id bannerid,a.migbannerid, b.bannerid, b.comments FROM CJ_MIG_ZONAS_BANNER a, rv_banners b WHERE a.excluir=0 and concat(a.ad_id,'')=b.comments
/*actualización banner id*/
update CJ_MIG_ZONAS_BANNER set migbannerid=(select bannerid from rv_banners b where concat(CJ_MIG_ZONAS_BANNER.ad_id,'')=b.comments LIMIT 1)
where excluir=0
Actualización de zona id en tabla a migrar
update CJ_MIG_ZONAS_BANNER SET migzonaid=555 where zone_id=1;
update CJ_MIG_ZONAS_BANNER SET migzonaid=100 where zone_id=5;
update CJ_MIG_ZONAS_BANNER SET migzonaid=567 where zone_id=7;
update CJ_MIG_ZONAS_BANNER SET migzonaid=564 where zone_id=8;
update CJ_MIG_ZONAS_BANNER SET migzonaid=652 where zone_id=15;
update CJ_MIG_ZONAS_BANNER SET migzonaid=11 where zone_id=16;
update CJ_MIG_ZONAS_BANNER SET migzonaid=546 where zone_id=25;
update CJ_MIG_ZONAS_BANNER SET migzonaid=557 where zone_id=34;
update CJ_MIG_ZONAS_BANNER SET migzonaid=566 where zone_id=36;
update CJ_MIG_ZONAS_BANNER SET migzonaid=532 where zone_id=38;
update CJ_MIG_ZONAS_BANNER SET migzonaid=535 where zone_id=39;
Inserción de ACLS y Zona Ad Assoc
INSERT INTO rv_acls(bannerid, logical, type, comparison, data, executionorder) SELECT migbannerid, logical, type, comparison, data, executionorder FROM CJ_MIG_ACLS_BANNER WHERE excluir=0
INSERT INTO rv_ad_zone_assoc(zone_id, ad_id, priority, link_type, priority_factor, to_be_delivered) SELECT migzonaid,migbannerid, priority,link_type, priority_factor, to_be_delivered FROM CJ_MIG_ZONAS_BANNER WHERE excluir=0