Foros del Web » Programando para Internet » PHP »

Actualizacion de base de datos

Estas en el tema de Actualizacion de base de datos en el foro de PHP en Foros del Web. Hola a todos Tengo 2 bases de datos, cada una con un sistema diferente y nada que ver uno con el otro, de hecho el ...
  #1 (permalink)  
Antiguo 07/07/2014, 09:24
 
Fecha de Ingreso: enero-2014
Mensajes: 17
Antigüedad: 10 años, 3 meses
Puntos: 0
Actualizacion de base de datos

Hola a todos

Tengo 2 bases de datos, cada una con un sistema diferente y nada que ver uno con el otro, de hecho el creador de uno del sistema usa una base de datos llamada firebird (no la conozco) y el otro usa mysql, el de firebird nos hizo el favor de sacar una serie de tablas de la base de datos en mysql para poder enlazarla con el otro sistema asi que mi tarea es estar actualizando estas tablas simultáneamente entre los sistemas es decir sin importar por cual sistema que haga un cambio el otro sistema también debe percibir también este cambio.

Por lo pronto use este método por el momento:
Hice un script donde hago una conexión una base de datos y se la paso a la otra.
De hecho borro si existe alguna información y luego vuelvo a pasar todo.
Creo que con esto podría parchar de alguna forma esta necesidad de actualizar, pero mi miedo es que si por alguna razón la conexión llegara a fallar (que aquí en mi región pasa seguido ) la base de datos llegaría a ser afectada de manera permanente.

Asi que necesito de alguna maenra detectar cuando se haga una actualizacion en alguna de estas tablas y actualizarla al otro sistema.

Hasta el momento esoty haciendo pruebas locales con este codigo:

Código:
<?php
// Si la base de datos tiene muchos datos habilitar esto
set_time_limit(0);
header('Content-type: text/plain');
$conexion = mysql_connect('localhost', 'root', '');
// De que base de datos vamos a tomar las tablas
$db_from = 'microsip';
// A que base de datos vamos a migrar las tablas
$db_to = 'test';
// Con los datos o no
$data = true;
// Leemos todas las tablas de db_from
$sql = "SHOW TABLES FROM $db_from";
$result = mysql_query($sql);
$list_tables = array();
while ($row = mysql_fetch_assoc($result))
{
   $list_tables[] = current($row);
}
//Borrar tablas si existen
foreach ($list_tables as $tbname){
   $sql = "DROP TABLE IF EXISTS $db_to.$tbname";
   $result = mysql_query($sql);
   if ($result)
   {
      echo "Migrada la estructura de la tabla $db_from.$tbname a $db_to.$tbname \n";
   }
}

// Migramos las estructuras de las tablas
foreach ($list_tables as $tbname){
   $sql = "CREATE TABLE IF NOT EXISTS $db_to.$tbname LIKE $db_from.$tbname";
   $result = mysql_query($sql);
   if ($result)
   {
      echo "Migrada la estructura de la tabla $db_from.$tbname a $db_to.$tbname \n";
   }
}
// Si data es true pasamos los datos de cada tabla vieja a la nueva
if ($data)
{
   echo "Comienza la migracion de datos \n";
   foreach ($list_tables as $tbname)
   {
      $sql = "INSERT INTO $db_to.$tbname SELECT * FROM $db_from.$tbname ";
      $result = mysql_query($sql);
      if ($result)
      {
         echo "Migrados datos de la tabla $db_from.$tbname a $db_to.$tbname \n";
      }
   }
   echo "Termina la migracion de datos \n";
}

?>
Me prodrian ayudar dandome una idea de como poder hacer el recorrido o sugerirme otro metodo para poder hacer eso?

Saludos y gracias por la atención.
  #2 (permalink)  
Antiguo 07/07/2014, 09:32
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Actualizacion de base de datos

Puedes user UNION para emular un INTERSECT... o bien, probar algo como esto:

http://www.mysqltutorial.org/compare...rds-mysql.aspx

Saludos
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: actualizacion, mysql, select, sql, tabla
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 14:50.