Foros del Web » Programando para Internet » PHP »

Migrar datos de una BD a otra

Estas en el tema de Migrar datos de una BD a otra en el foro de PHP en Foros del Web. Hola: Tengo dos BD casi identicas pero hay algunos detalles que debo tener en cuenta. Estoy tratando de hacer un script en PHP que me ...
  #1 (permalink)  
Antiguo 09/06/2011, 12:05
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 8 meses
Puntos: 1
Migrar datos de una BD a otra

Hola:
Tengo dos BD casi identicas pero hay algunos detalles que debo tener en cuenta. Estoy tratando de hacer un script en PHP que me migre la DATA de una BD a la otra pero algo estoy pasando por alto porque los datos no pasan de un lado a otro. Este es el codigo:
Código PHP:
define('DB_DRIVER''mysql');
define('DB_HOSTNAME''localhost');
define('DB_USERNAME''root');
define('DB_PASSWORD''');

define('DB_DATABASE_NEW''libcommerce');
define('DB_DATABASE_OLD''libnew');


$link mysql_connect(DB_HOSTNAMEDB_USERNAMEDB_PASSWORD);

if(!
$link) {
    die(
mysql_error());
}

// Migrate table address
$db_new mysql_select_db(DB_DATABASE_NEW$link);
$query_address_old mysql_query("SELECT * FROM address");

$db_old mysql_select_db(DB_DATABASE_OLD$link);
while(
$row mysql_fetch_assoc($query_address_old)) {
    
mysql_query("INSERT INTO address SET customer_id = '". (int) $row['customer_id']."', firstname = '"mysql_real_escape_string($row['firstname']) ."', lastname = '"mysql_real_escape_string($row['lastname']) ."', address_1 = '"mysql_real_escape_string($row['address_1']) ."', address_2 = '"mysql_real_escape_string($row['address_2']) ."', city = '"mysql_real_escape_string($row['city']) ."', postcode = '"$row['postcode'] ."', country_id = '"$row['country_id'] ."', zone_id = '"$row['zone_id'] ."' ");
}

mysql_free_result($query_address_old); 
Alguna idea de que estoy haciendo mal o alguna sugerencia de metodos para migrar la DATA de una BD a la otra?
Saludos y gracias por adelantado
  #2 (permalink)  
Antiguo 09/06/2011, 13:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Migrar datos de una BD a otra

De hecho eso se puede hacer con una sola instrucción de SQL:
Cita:
INSERT INTO db1.tabla_destino SELECT * FROM db2.tabla_origen
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/06/2011, 13:58
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Migrar datos de una BD a otra

No conocia esta forma pero bueno dos preguntas:
1) mysql_select_db() a que base de datos debe apuntar o debo tener dos mysql_select_db() ?
2) esto solo funciona si la tabla origen y la tabla destino son iguales en estructura cierto?
  #4 (permalink)  
Antiguo 09/06/2011, 14:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Migrar datos de una BD a otra

Si, realmente necesitas que ambas tablas tengan la misma estructura, o al menos la misma cantidad de columnas y en igual orden.

Claro que para poder ejecutar una consulta de esta naturaleza debes hacerlo con un usuario que tenga todos los privilegios, y me parece que con un único mysql_select_db() deberías bastar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: bd, migrar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:23.