Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* [TUT!] Unir dos bases de datos | Distintos foros
  Leído 3020 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


*
Autor: jsDotx3
Jul 31 2014
[TUT!] Uniendo dos bases de datos de distinto foros

Muchas veces nos queremos "aliar" con otro sitio web y obviamente topamos con que debemos juntar las bases de datos, cosa que en SMF con un foro ya sobre 500 mensajes y 250 temas, es algo "complicado" estar editando cada valor de las tablas de mensajes y temas, hoy les traigo la solución a sus puertas y me base en un tópico que encontré, solo que edite un par de cosas y números respectivos.

Requisitos básicos
- Conocimientos mínimos de MySQL
- Acceso a la base de datos (obligatorio)


Preparando el molde
Lo que debemos hacer en primer lugar es averiguar los valores máximos que tenemos insertados (cuantos registros hay en la base de datos) de una cierta fila en especifica, para esto iremos a nuestra base de datos (phpmyadmin) e iremos a la parte donde dice SQL e insertamos el siguiente código:


Código: (mysql) [Seleccionar]
SELECT MAX(ID_BOARD) AS max_id_board FROM smf_boards;
Con el código anterior, conocemos la cantidad de registros de foros que existen en nuestro foro SMF, Luego seguimos con el siguiente código

Código: (mysql) [Seleccionar]
SELECT MAX(ID_CAT) +AS max_id_cat FROM smf_categories;
Con eso, obtenemos las categorías que existen (cantidad), Luego seguimos con el siguiente código

Código: (mysql) [Seleccionar]
SELECT MAX(ID_MEMBER) AS max_id_member FROM smf_members;
Con el código anterior, obtenemos la cantidad de usuarios registrados, seguimos aún nos falta..

Código: (mysql) [Seleccionar]
SELECT MAX(ID_MSG) AS max_id_msg FROM smf_messages;
Con ese código, obtendremos la cantidad de mensajes que hay en nuestro foro (total), seguimos al último código.

Código: (mysql) [Seleccionar]
SELECT MAX(ID_TOPIC) AS max_id_msg FROM smf_topics;
Con eso, finalmente obtendremos la cantidad de temas en nuestro foro.
OJO: Todos los códigos realicen por separados en la base de datos vieja (1), ya que la base de datos nueva (2) es cual "modificaremos" para estar con los registros, también en las consultas a MySQL te arrojará numeros, esos numeros debes anotar, en este caso fue lo siguiente:

Código: (mysql) [Seleccionar]
/* Total Foros: 81 */
SELECT MAX(ID_BOARD)AS max_id_board FROM smf_boards;

/* Total categorías: 13 */
SELECT MAX(ID_CAT) AS max_id_cat FROM smf_categories;

/*Total registrados:  327 */
SELECT MAX(ID_MEMBER) AS max_id_member FROM smf_members;

/* Total mensajes:  37240 */
SELECT MAX(ID_MSG) AS max_id_msg FROM smf_messages;

/* Total temas:  4206 */
SELECT MAX(ID_TOPIC) +30 AS max_id_msg FROM smf_topics;

Modificando la base de datos nueva (2)
Luego de conocer los valores anteriores, proseguiremos a trabajar en la base de datos nueva que tendremos al respecto, solo es cosa de aplicar el siguiente código en el apartado SQL


Código: (mysql) [Seleccionar]
/* Foreign key checks need to be off! */
SET FOREIGN_KEY_CHECKS=0;
UPDATE smf_boards SET ID_BOARD = ID_BOARD+81;
UPDATE smf_boards SET ID_LAST_MSG = ID_LAST_MSG+37240;
UPDATE smf_boards SET ID_MSG_UPDATED = ID_MSG_UPDATED+37240;
UPDATE smf_boards SET ID_CAT = ID_CAT+13;
UPDATE smf_members SET ID_MEMBER = ID_MEMBER+327;
UPDATE smf_members SET ID_MSG_LAST_VISIT = ID_MSG_LAST_VISIT+37240;
UPDATE smf_topics SET ID_TOPIC = ID_TOPIC+4206;
UPDATE smf_topics SET ID_BOARD = ID_BOARD+81;
UPDATE smf_topics SET ID_MEMBER_STARTED = ID_MEMBER_STARTED+327;
UPDATE smf_topics SET ID_MEMBER_UPDATED = ID_MEMBER_UPDATED+327;
UPDATE smf_topics SET ID_FIRST_MSG = ID_FIRST_MSG+37240;
UPDATE smf_topics SET ID_LAST_MSG = ID_LAST_MSG+37240;
UPDATE smf_messages SET ID_MSG = ID_MSG+37240;
UPDATE smf_messages SET ID_TOPIC = ID_TOPIC+4206;
UPDATE smf_messages SET ID_BOARD = ID_BOARD+81;
UPDATE smf_messages SET ID_MEMBER = ID_MEMBER+327;
UPDATE smf_messages SET ID_MSG_MODIFIED = ID_MSG_MODIFIED+37240;
UPDATE smf_categories SET ID_CAT = ID_CAT+13;

Finalmente saldrá todo correcto, si es así haces un respaldo de las siguientes tablas:
smf_boards
smf_categories
smf_members
smf_messages
smf_topics

Con eso, exportas desde phpmyadmin y finalmente lo importas en la base de datos vieja del foro que tenías.

Manual sacado desde SMF Oficial, texto y redacción por @JSX3 :)

Saludos, JSX3



¡Muy bueno esto!
Le servirá a más de uno...




Excelente tutorial!
En un futuro seguro que me servirá a mi, y a mucha gente
Muchas gracias por el aporte ;D +10 !
Un saludo!




Una maravilla!!




Interesante... muy buen aporte!! Gracias!




Otros temas de su interes




Usuario:
Contraseña:
Sesión:
hermes bracelet replica, christian louboutin replica, van cleef and arpels replica, red bottoms replica, cartier love bracelet replica christian louboutin replica, christian louboutin replica, hermes bracelet replica,