Strict Standards: Non-static method CodeColorerLoader::Enable() should not be called statically in /home/k6000169/public_html/wp-content/plugins/codecolorer/codecolorer.php on line 254
2013 junio | Programador freelance argentina

Magento redirects a la vieja URL luego de mover un site

Mover un site Magento (casi) siempre es problemático. Y una de las cosas más aburridas es actualizar las URLs de las tiendas luego de mover un site.

Por lo cual me hice un pequeño script para automatizar un poco esto.

Para ejecutarlo hay que crear un carpeta llamada [MAGE_ROOT]/scripts/update-stores_urls y meter este php (update-stores-urls.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
/*
* Luego de importar el SQL de un website Magento actualiza las URLs de las tiendas.
*
* 1. Setear el host para las urls unsecure.
* 2. Setear el host para las urls secure.
* 3. Setear los datos de conexión a la base de datos.
* 4. Ejecutar desde la línea de comandos:
*
* $ sh run.sh
*
*/


define ('SOURCE_HOST_UNSECURE', 'http://www.mysite.com/');
define ('SOURCE_HOST_SECURE', 'https://www.mysite.com/');

define ('TARGET_HOST_UNSECURE', 'http://new.mysite.local/');
define ('TARGET_HOST_SECURE', 'http://new.mysite.local/');

$db['name'] = 'db_magento';
$db['user'] = 'db_user';
$db['pass'] = 'db_pass';
$db['host'] = 'db_host';

$conn = mysql_connect($db['host'],$db['user'],$db['pass']);
@mysql_select_db($db['name']) or die(mysql_error());

// Se actualizan las URLs no seguras
$query = "SELECT config_id, value FROM core_config_data WHERE path LIKE 'web/unsecure/%'";

$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result)) {
$config_id = $row['config_id'];
$value = str_replace(SOURCE_HOST_UNSECURE, TARGET_HOST_UNSECURE, $row['value']);

$query = "UPDATE core_config_data SET value = '$value' WHERE config_id = $config_id";

echo $query . "\n";

mysql_query($query);
}

// luego actualizo los configs secure
$query = "SELECT config_id, value FROM core_config_data WHERE path LIKE 'web/secure/%'";

$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result)) {
$config_id = $row['config_id'];
$value = str_replace(SOURCE_HOST_SECURE, TARGET_HOST_SECURE, $row['value']);

$query = "UPDATE core_config_data SET value = '$value' WHERE config_id = $config_id";

echo $query . "\n";

mysql_query($query);
}

echo "Actualizadas las URLs de las tiendas :)\n";

?>

Y el siguiente sh (run.sh):

1
2
3
4
5
6
# actualizacion de las urls en la bd
php update-stores-urls.php

# limpieza de la cache
rm -fr ../../var/cache/*
rm -fr ../../var/session/*

Para ejecutarlo correr desde línea de comandos:

1
$ sh run.sh

Para más info de cómo acá hice un mini tutorial sobre los pasos a seguir para mover / copiar un site Magento a un servidor MAMP.

Uncaught exception ‘Zend_Exception’ with message ‘dbModel read resource does not implement Zend_Db_Adapter_Abstract’

Simple 🙂

1
2
$ rm var/cache/*
$ rm var/session/*