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

[SOLUCIONADO] Migrar datos a base datos distinta

Estas en el tema de Migrar datos a base datos distinta en el foro de Bases de Datos General en Foros del Web. Hola compañeros, comencé esta pregunta en el foro mysql y me recomendaron hacerlo aquí. expongo lo mismo a ver si me pueden ayudar Tengo un ...
  #1 (permalink)  
Antiguo 22/05/2016, 12:34
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Migrar datos a base datos distinta

Hola compañeros, comencé esta pregunta en el foro mysql y me recomendaron hacerlo aquí. expongo lo mismo a ver si me pueden ayudar

Tengo un problema que intentaré explicar lo mejor posible.

Tengo que migrar datos de una base de datos a otra, y en la migración hacer la transformación puesto que no coinciden todos los campos. El mayor problema que tengo es con los usuarios y los artículos. Resulta que el idUsuario y el idArtículo, son únicos, auto incrementables. y en las tablas a las que me los llevo también, el problema es que en la tabla original, alguien borró varios registros de manera que el autoincrementable tiene salto por ejemplo:

1, 2, 3, 5, 6, 9, 11 etc...

Y a la hora de enviarlos a la nueva tabla, como el auto incrementable lo gestiona mysql, no me coinciden las ids a partir del primer salto de la original o sea que en la nueva quedaría así:

1 -> 1,
2 -> 2,
3 -> 3,
4 -> 5,
5 -> 6

y el mismo problema con los anuncios, que al llevar la id del anuncio en la URL, las urls a partir del salto las perdería generando muchos 404.

La pregunta es, ¿Existe alguna consulta para que me deje insertar en la nueva tabla aunque tenga el idUsuario, o idArticulo autoincrement con la cual pueda poner los ids tal y como tocan?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 22/05/2016, 14:32
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Migrar datos a base datos distinta

Bueno, por empezar, NO, No existe una consulta que te permita hacer todo lo que tienes que hacer para integrar los datos de una base a los de lá otra.
Lo que tendrás que hacer requiere múltiples consultas y varios pasos, e incluso etapas diferentes de pruebas para asegurar los datos.
Yo he hecho antes cosas así y te aseguró que no es una tarea de principiantes. Y tampoco puede hacerse en automático.
__________________
¿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 23/05/2016, 00:50
Avatar de CompuDoc  
Fecha de Ingreso: febrero-2011
Mensajes: 41
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Migrar datos a base datos distinta

Y si desactivas el autoincrement en las tablas destino y luego los activas?
  #4 (permalink)  
Antiguo 23/05/2016, 02:55
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Migrar datos a base datos distinta

Ese no es el problema, estimado...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/05/2016, 03:07
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Migrar datos a base datos distinta

Mientras van surgiendo respuestas, voy a intentar lo de desactivar el autoincremento y si no funciona lo que haré es que cuando no haya un registro correlativo rellenarlo en vacío y una vez haya terminado los borro todos. Creo que así funcionará. Ya os contaré.
  #6 (permalink)  
Antiguo 23/05/2016, 04:45
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Migrar datos a base datos distinta

Vamos por partes.
Cuando dices esto:
Cita:
Tengo que migrar datos de una base de datos a otra, y en la migración hacer la transformación puesto que no coinciden todos los campos. El mayor problema que tengo es con los usuarios y los artículos. Resulta que el idUsuario y el idArtículo, son únicos, auto incrementables. y en las tablas a las que me los llevo también, el problema es que en la tabla original, alguien borró varios registros de manera que el autoincrementable tiene salto por ejemplo:
Podría inferirse que en ambas bases existen no sólo columnas diferentes entre tablas dedicadas a los mismos datos, sino que podrían bien existir registros diferentes, de diferentes usuarios y productos, con el mismo ID de otros distintos en la otra base.
¿Es así? ¿Tienes al menos UN registro con un mismo numero de ID que NO se refiera al mismo usuario en ambas tablas de ambas bases, o del mismo producto en ambas tablas de productos de las bases?
Si la respuesta es SI, entonces el autoincremental es irrelevante, porque el problema es integrar bases que se han alimentado por separado, generando conjuntos de datos diferentes.

Por otro lado, la secuencialidad prolija de un ID autonumérico es total y absolutamente IRRELEVANTE. No aporta nada, porque el objeto no es que quede "bonito", sino identificar univocamente los registros... No te confundas.
SI tienes un salto de uno o dos registros, o de mil números, realmente no tiene ninguna importancia, en tanto los datos mantengan consistencia en el resto de la base. No pierdas tiempo "emprolijando" números, y no pienses en re-usar numeraciones ya eliminadas. Eso NO se hace.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/05/2016, 07:43
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Migrar datos a base datos distinta

Al final lo he solucionado desactivando el autoincrementable.

No obstante te contesto. El problema no era solo por el tema de relacionar, ya que aunque me cambiaran las ids los datos se relacionaban bien. El problema es porque en la URL Amigable que se genera para mostrar el artículo al usuario, ya no coincidían las IDS, si que coincidían datos, textos, imágenes etc, pero no las IDS, por lo tanto google las que ya estaban indexadas al mostrarlas y acceder me daban errores 404.

Muchas gracias a todos por la respuesta.
  #8 (permalink)  
Antiguo 23/05/2016, 07:50
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Migrar datos a base datos distinta

Cita:
El problema es porque en la URL Amigable que se genera para mostrar el artículo al usuario, ya no coincidían las IDS, si que coincidían datos, textos, imágenes etc, pero no las IDS, por lo tanto google las que ya estaban indexadas al mostrarlas y acceder me daban errores 404.
Esto que describes no tiene ninguna relación con MySQL. MySQL no ve ni entiende de URLs, sean las que sean.
Y tu estabas hablando de migrar datos, no de URL...
Cita:
Tengo que migrar datos de una base de datos a otra
Lo que hagas en la aplicación (incluyendo en navegador) es totalmente invisible para la BBDD.

Cita:
Al final lo he solucionado desactivando el autoincrementable.
Ten en cuenta que al desactivar el AI, ya no se genera ninguna numeración de ningún tipo en forma automática, y será responsabilidad de la aplicación crear los valores de INSERT que correspondan.

¿Eso lo tienes claro?

A mi entender estás corrompiendo el funcionamiento de la base, y sigue sin quedar claro qué problemas tendías entonces con los ID autonicrementados. Me parece que simplemente el tema pasaba por tener un proceso de migración mal diseñado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 24/05/2016, 04:47
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Migrar datos a base datos distinta

Si lees bien mi POST verás que si hablo de URLS, quizás no me supe explicar bien o tu nome entendiste bien pero hablar de URLS hablo.

al llevar la id del anuncio en la URL, las urls a partir del salto las perdería generando muchos 404.

También te recuerdo que puse este post en esta categoría porque tú me lo dijiste y te hice caso porque durante años siempre me has ayudado, pero parece que esta vez te ha molestado que lo haya solucionado de otra manera. No lo entiendo.

Y con respecto al Auntoincrement, si después de desactivarlo y hacer la migración lo activas, continúa donde se quedó y no es necesario que la aplicación gestione los IDS.

Agradezco mucho tu ayuda, pero no entiendo por qué parece que te haya sentado mal que haya conseguido solucionarlo de una manera sencilla.

Bueno por mi parte doy or cerrado el POST, gracias a todos

Etiquetas: bd
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 02:18.