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:
Me prodrian ayudar dandome una idea de como poder hacer el recorrido o sugerirme otro metodo para poder hacer eso?<?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"; } ?>
Saludos y gracias por la atención.