Unir dos tablas de posts en una nueva tabla

Espacio para plantear dudas, escribir sugerencias, proponer soluciones, para todo lo relacionado con la versión 3 del sistema de foros phpBB

Moderador: fabriciano

Unir dos tablas de posts en una nueva tabla

Notapor davidbcn » 22-06-2009 18:16

Hola Fabriciano,

Tengo copia de posts viejos y quisiera subirlos a mi foro pphbb3 con los posts más recientes.
Entonces creo que la cosa es añadir la información de las tablas phpbb_posts y phpbb_topics al foro.
Pero al subir, me sale error "duplicate key"
Esto debe ser así porque tengo posts repetidos.
Cómo podría cambiar esa key para poder subirlo todo sin que me dé error?

Saludos y gracias
Tus amigos del foro.
davidbcn
Veterano
 
Mensajes: 145
Registrado: 13-05-2005 18:03



Re: Unir dos tablas de posts en una nueva tabla

Notapor fabriciano » 22-06-2009 20:24

La cuestión no es tan sencilla. Lo de "duplicate key" se debe a que existe el mismo número (post_id) en los posts y (topic_id) en los topics, para los temas y mensajes antiguos y modernos. En el caso de que modificases estos números (recuerda que cada post corresponde a un determinado topic) antes de efectuar la subida (en el archivo SQL), tendrías también que añadir registros en otras tablas: topics_posted, topics_track, topics_watch, users, users_group. (Creo que no me queda ninguna.)

Saludos.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10346
Registrado: 04-09-2001 16:34
Ubicación: Lugo

Re: Unir dos tablas de posts en una nueva tabla

Notapor davidbcn » 29-06-2009 10:36

fabriciano escribió:La cuestión no es tan sencilla. Lo de "duplicate key" se debe a que existe el mismo número (post_id) en los posts y (topic_id) en los topics, para los temas y mensajes antiguos y modernos. En el caso de que modificases estos números (recuerda que cada post corresponde a un determinado topic) antes de efectuar la subida (en el archivo SQL), tendrías también que añadir registros en otras tablas: topics_posted, topics_track, topics_watch, users, users_group. (Creo que no me queda ninguna.)

Saludos.


Hola, ya veo que no es tan sencillo :? ¿y cómo se modifican esos números? ¿modifico a partir vea que sale duplicate key? ¿o lo hago antes? son demasiadas tablas implicadas, pensé que eran sólo dos... :? en fin, muchas gracias.

:saludo:
Tus amigos del foro.
davidbcn
Veterano
 
Mensajes: 145
Registrado: 13-05-2005 18:03

Re: Unir dos tablas de posts en una nueva tabla

Notapor fabriciano » 29-06-2009 15:48

Tendrías que revisar los campos citados en todos los registros de las tablas que tienes ahora en la base de datos de los foros. Después deberás examinar cuáles de esos números se repiten en el archivo SQL que contiene las otras tablas y cambiarlos por otros. Pero ten en cuenta que hay otras tablas implicadas. Sabrás que cada post fue escrito por un usuario, por lo que debe quedar registrado en las tablas de usuarios y grupos. Si alguno de los usuarios, registrado en la tablas que añades, no aparece en el listado actual, deberás añadirlo (aunque sea ficticio). Si no lo haces, se producirá un error.

Si hicieses la fusión completa de todas las tablas viejas con las nuevas, sería más sencillo. Claro está, de todas las que se modifican cada vez que se crea un tema o se añade un mensaje. Si no los haces así, corres el riesgo de que los foros muestren muchos errores. Todo ello con mucho cuidado y paciencia.

Saludos.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10346
Registrado: 04-09-2001 16:34
Ubicación: Lugo

Re: Unir dos tablas de posts en una nueva tabla

Notapor davidbcn » 08-07-2009 12:45

la fusión completa de todas las tablas? bueno, tengo dos copias ENTERAS (con todas las tablas) de base de datos, de la antigua y de la nueva, pero suponía que fusionando sólo las tablas implicadas sería más fácil......

Entonces es más fácil fusionando todas las tablas? y cómo hago? :?

y otra cosa que aprovecho pa comentarte, que no tiene na que ver con el tema
si añado esto a la base de datos ALTER TABLE `phpbb_topics` ADD INDEX `topic_lpid` ( `topic_last_post_id` );

¿luego qué orden tendría que usar si quisiera borrarlo?

Gracias fabriciano :saludo:
Tus amigos del foro.
davidbcn
Veterano
 
Mensajes: 145
Registrado: 13-05-2005 18:03

Re: Unir dos tablas de posts en una nueva tabla

Notapor fabriciano » 08-07-2009 15:54

Cuando me refiero a la fusión de varias tablas es porque son varias las que están implicadas en los temas y mensajes: el propio tema, el mensaje dentro del tema, el usuario que escribió el tema, los usuarios que escribieron los mensajes, las palabras utilizadas en las tablas de búsquedas... Por eso te digo que no es fácil, que si no lo haces bien puedes dejar los foros inutilizables. Si existiese un script que efectuase la fusión, sería lo ideal, pero que yo sepa no existe. Existen scritps de conversión de otros formatos de foros a phpBB3, pero no tengo conocimiento de que exista uno de fusión.

Sobre la segunda cuestión. ¿Para que quieres añadir un nuevo índice a la tabla phpbb_topics? Para eliminar un INDEX habrá que utilizar, en vez de la orden ADD, la orden DROP.

Saludos.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10346
Registrado: 04-09-2001 16:34
Ubicación: Lugo

Re: Unir dos tablas de posts en una nueva tabla

Notapor davidbcn » 08-07-2009 22:44

si existiera ese script de fusión de tablas sería genial, quizás me ponga a googlear pa ver si hay algo así, no sé... :? gracias igual
y sobre lo otro, es que quería probar un MOD, y hay que añadir eso a la tabla topics, y si veo que el MOD no me convence o algo sale mal, quisiera desinstalarlo, y pa eso necesitaba saber cómo borrar lo que inserto...

entonces pa desintalar sería ALTER TABLE `phpbb_topics` DROP INDEX `topic_lpid` ( `topic_last_post_id` );

vale muchas gracias por todos estos conocimientos que aportas generosamente, siempre acudo a tí eres de los mejores.
un libro abierto fabriciano.

:saludo:
Tus amigos del foro.
davidbcn
Veterano
 
Mensajes: 145
Registrado: 13-05-2005 18:03

Re: Unir dos tablas de posts en una nueva tabla

Notapor fabriciano » 09-07-2009 16:00

Gracias por tus comentarios, davidbcn, me llenan de satisfacción.

Saludos.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10346
Registrado: 04-09-2001 16:34
Ubicación: Lugo


Volver a Foros phpBB (Versión 3)