Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/10/2013, 10:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Perdida de Relaciones entre tablas (MyIsam to InnoDB)

Algunos detalles:
1) Ninguna tabla cambia su estructura por si misma. Solo puede suceder si expresamente se ha hecho un ALTER TABLE que lo genere.

2) Lo que sí puede ocurrir es que los scripts de creación de las tablas no incluyeran la clasula ENGINE = InnoDB, o bien que el InnoDB no estuviese activado en el servidor de producción.
En el primer caso, MySQL aplica el motor de tablas por default definido en el servidor, por lo que si éste es MyISAM... pues descartará la creación de toda FK, sin nisiquiera darte una advertencia.

3) Modificar las tablas para pasarlas a InnoDB es insuficiente. No "recuperará" las relaciones de FK por la simple razón de que para las tablas MyiSAM estas jamás existieron.
Lo que debes hacer en ese caso es volver a crear una a una las FK. Una a una.

4) Migrar datos entre esta base productiva, y otra correctamente construida, puede no funcionar. Como en la base productiva las restricciones no estuvieron operativas, es altamente probable que haya datos inconsistentes, es decir datos que no respeten esas FK, y en ese caso la migración de datos será incompleta e incorrecta en muchos momentos.
La única solución para eso es hacer n plan de migración y de corrección de datos defectuosos.
La verdad, no te envidio. Es un trabajo que te llevará bastante tiempo y mucho esfuerzo. A mi ya me ha sucedido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)