Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Actualización de datos en Base Mysql

Estas en el tema de Actualización de datos en Base Mysql en el foro de Mysql en Foros del Web. Buenas, paso a explicarles lo q necesito hacer. Tengo un sistema realizado en Visual 2010 con Mysql, parte del mismo ya está funcionando, por ende ...
  #1 (permalink)  
Antiguo 19/07/2011, 06:07
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Actualización de datos en Base Mysql

Buenas, paso a explicarles lo q necesito hacer.
Tengo un sistema realizado en Visual 2010 con Mysql, parte del mismo ya está funcionando, por ende hay datos cargados en las BD.
Debo actualizar el sistema y a su vez las tablas del Mysql,
COMO HAGO PARA PODER ACTUALIZAR LAS TABLAS SIN PERDER LOS DATOS YA CARGADOS?
SIN TENER Q HACERLO TABLA POR TABLA.
Muchas gracias
  #2 (permalink)  
Antiguo 19/07/2011, 07:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualización de datos en Base Mysql

¿Los cambios a los que te refieres incluyen estructuras de tabla, indices, claves primarias, y rutinas almacenadas?
Si es así, será una tarea larga y hay que hacer una combinación entre recursos programados y consultas a la base de information_schema...
Es posible que migrar los datos a una base diferente sea una opción más simple.

Comentanos mejor qué cosas cambiarán entre un modelo de datos y el nuevo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/07/2011, 08:51
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Actualización de datos en Base Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Los cambios a los que te refieres incluyen estructuras de tabla, indices, claves primarias, y rutinas almacenadas?
Si es así, será una tarea larga y hay que hacer una combinación entre recursos programados y consultas a la base de information_schema...
Es posible que migrar los datos a una base diferente sea una opción más simple.

Comentanos mejor qué cosas cambiarán entre un modelo de datos y el nuevo.
Sí, probablemente haya q modificar índices y claves.
Cómo sería la opción de migrar los datos a otra base? Cuando los vuelvo a levantar no me modifica nuevamnte las tablas?
  #4 (permalink)  
Antiguo 19/07/2011, 09:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualización de datos en Base Mysql

Es el proceso tabla a tabla, por el cual creas una base tal y como debería quedar la actualizada y vas migrando los datos desde la vieja a la nueva.
Luego o haces un backup compelto, y "pisas" la base vieja con ese backup, o bien rediriges las conexiones a la base nueva.

Si sólo hay que modificar indices y alguna que otra clave, por allí te conviene hacer un proceso que verifique una a una las claves y los índices para ver si hay que crearlos o no.

Esto, por ejemplo, verifica todas las tablas que posean una definición de FOREIGNK KEY, lo que permite hacer un proceso de eliminación automático, que luego se prosigue creando las FK nuevas:
Código MySQL:
Ver original
  1. SELECT DISTINCT TABLE_NAME, CONSTRAINT_NAME
  2. FROM information_schema.KEY_COLUMN_USAGE K
  3.   REFERENCED_COLUMN_NAME IS NOT NULL AND
  4.   CONSTRAINT_SCHEMA = 'fulmar' AND
  5.   CONSTRAINT_NAME !='PRIMARY'
  6. ORDER BY TABLE_NAME, CONSTRAINT_NAME
Yo uso esto para borrar todas las FK y volverlas a crear, esta vez con ayuda de un script que contiene todas las creaciones, las vuelvo a crear.

Una consulta parecida me permite saber si hay ciertos índices creados:
Código MySQL:
Ver original
  1. SHOW INDEX FROM `diario`;
Desde una aplicación, esto me devuelve un registro por cada campo de cada clave. SI la cantidad que tengo que encontrar y los nombres son iguales, entonces no lo genero. Si el índice existe, pero no tiene exactamente la estructura, lo borro y lo creo comno debe ser.
Es una tarea engorrosa pero es lo que tuve que diseñar, porque la aplicación fue enviada al mercado sin haber sido terminada y con la base en desarrollo.

¿Te sirven estas ideas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: 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 13:37.