Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Actualizar PhpNuke a PhpBB3.1.8

Foros de soporte phpBB 3.1.x
Cerrado
Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Actualizar PhpNuke a PhpBB3.1.8

#1

Mensaje por Manunet »

Hola a todos, a ver por donde empiezo que el asunto tiene tela.. jeje..
Os pongo en contexto:
Tengo un foro en PhpNuke el cual tiene un código php del años dos A.C., bueno, pues siguiendo las instrucciones de aqui:
https://my.hostmonster.com/cgi/help/202
Consigo pasar el nuke a phpbb2 2.0.23, tengo que decir que para convertir las fechas 'user_regdate' hice un pequeño programa en VB que leía los datos de la tabla del nuke, convertía la fecha y grababa los datos a la tabla del Phpbb2.
Bueno, el foro phpbb2 parece que funciona sin problemas y tal pero lo quiero pasar a phpbb3 3.1.8, el problema que tengo es que una vez hecha la instalación limpia del phpbb3 le doy a convertir, relleno todos los campos necesarios, BD antigua, usuario, contraseña, prefijo y tal... me dice que todo bien, le doy a convertir y poco a poco se va actualizando la pagina de conversión, parece que todo va bien, el problema es que despues de llenar la tabla 'phpbb_post' el navegador me dice que la conexión a expirado y ahí se queda, si accedo al nuevo foro no hay ni usuarios ni mensajes ni nada pero en la BD parece que está todo...
La verdad es que no se que puede estar fallando, alguien puede hecharme un cable o alguna pista?
muchas gracias.

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#2

Mensaje por Manunet »

Bueno, poco a poco voy avanzando... he revisado las dos BD's y veo que en en el destino ( la BD de phpbb3 ) sólo se ha importado hasta el post nº 194.893, la Bd origen tiene ahora mismo 301.340 post... creo que la "rata" tiene que estar en algun tipo de campo porque ya me he encontrado que el phpbb2 tiene el campo 'user_sig_bbcode_uid' como char(10) y en phpbb3 está como varchar(8) dato importante si se va a importar un campo de más de 8 carácteres... tambien está la incoherencia en 'bbcode_uid'...En fin.. que sigo buscando la "ratita" a ver si la encuentro.
Algunos datos de interés de la base de datos origen:
Usuarios del foro: unos 12.300 y pico
Post's : 301.340 y cada día aumenta, así que en cuanto tenga localizada la "rata" me toca poner en modo mantenimiento el antiguo foro y hacer todo desde el principio para no perder ningun dato... uf...
saludos.

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#3

Mensaje por Manunet »

Nada, no encuentro nada... al final voy a hacer la gran "burrada"... Como ya hice un pequeño ejecutable para importar la tabla de usuarios modificando la fecha a formato unix pues voy a hacer otro para importar uno a uno los posts... con los usuarios se tiró un rato el servidor a tope... 12.300 usuarios.. veremos con los post... 300.000 y pico... antes de ejecutar voy a ponerme al lado un extintor no sea que... jajja... me siento solo :rofl:

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#4

Mensaje por Manunet »

He tenido una idea, voy a utilizar este hilo para ir apuntando las cosas que voy a ir haciendo así lo tengo para ir consultando lo que voy haciendo y de paso si alguien quiere hacer lo mismo pues lo tendrá todo aqui bien explicado y ordenado.
Ya que estoy al principio del hilo pues voy a empezar:

Situación:
Foro en phpnuke ( phpib2 phpbb2 style by phpbb2.de :: PHP-Nuke theme by www.nukemods.com )
El foro tiene ya sus años y cuenta con mas de 12.000 usuarios y más de 300.000 posts repartidos en unos cuantos foros con todo tipo de información, para que os hagais una idea, la base de datos pesa casi 150 Mb.

Intención:
Pasar el Nuke a Phpbb3 y no morir en el intento

Equipo:
Tengo un server propio y la pagina irá alojada en el, el equipo cuenta con lo siguiente:
Apache 2.4.3
Php 5.4.31

Problemas:
El código del nuke está obsoleto, la mayoría de las funciones no funcionan o devuelven errores, actualmente está deshabilitado el registro de errores ya que en un día puede llegar a pesar 700 megas el LOG.
Esto se debe porque en donde estaba alojado el foro usaban un versión de PHP ya obsoleta, creo que era la 2 punto algo y claro, al pasar a la 5.4.31 se han corregido muchos errores y fallos de seguridad por eso muchas funciones no realizan su cometido.

Estudio de la situación:
Como no se puede pasar directamente ( ya lo he probado ) el nuke a phpbb3 lo haré por pasos, de todas maneras, aunque técnicamente si que se puede ( mover datos de una base de datos a otra ) es un jaleo enorme ya que cada cosa tiene que ir en su sitio. Buscando por internet encontré una manera de pasar el nuke a phpbb2, pues bien, ese será el primer paso y una vez tengamos el phpbb2 en marcha veremos de pasarlo a phpbb3. Son conocidos los conversores de phpbb2 a phpbb3, intentaré utilizar uno de esos para agilizar el trabajo, pero las pruebas preliminares ya me dicen que no funciona y al no generar ningun registro o log pues voy dando palos de ciego.

Bueno, empezaré desde el primer paso y según lo voy escribiendo aqui lo iré haciendo, mas o menos esto será mi cuaderno de bitácora.
Saludos y hasta la proxima

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#5

Mensaje por Manunet »

Lo primero que hago es descargarme el foro entero del servidor donde está, luego exporto la base de datos, una vez lo tengo todo lo subo a mi servidor, creo un subdominio para las pruebas, abro PhpMyAdmin, creo el usuario que está en el config.php y le pongo la misma contraseña, luego importo toda la BD, abro la página y veo que funciona igual que donde está actualmente.
Vale, ahora creo otro usuario en PhPMyAdmin, le pongo otra contraseña y creo una base de datos en blanco llamada phpbb2_BD.
Buscando por internet encuentro los archvos para instalar phpbb2 en perfecto inglés ( no encuentro el paquete en castellano ), lo instalo, lo configuro con la nueva BD y voilá, ya tengo los dos foros en marcha, bien, ahora empieza la chicha...
Como los archivos de los foros no hay que tocarlos para nada todo lo referente va a ser a las bases de datos.

Entro en la BD del BB2, borro las tablas 'Auth_access' 'Topics' 'Categories' 'Forums' 'Posts' y 'Posts_text'
voy a la bd del Nuke y exporto esas mismas tablas, pero sin comprimir, vamos, a pelo, ojo que hay que poner estructura y datos.
Edito el archivo y cambio el prefijo 'nuke_bb' por 'phpbb_' luego importo las tablas a BB2.
Ahora lo mismo pero con la tabla 'nuke_users', la exporto, la edito, cambio 'nuke_' por 'phpbb_' pero el nombre de la tabla no lo cambio, la importo y tengo una nueva tabla en la BD del BB2 llamada 'nuke_users'. La razón es muy sencilla, la fecha de registro de los usuarios, en el nuke está como ' Jan 10, 2000', ( ojo que Jan es Januari, Enero en castellano ) y las fechas en el BB2 están en formato Unix que es una referencia en segundos desde el 1 de enero de 1970.
Hay página que te hacen la conversión sin problemas, pero claro, tengo 12.000 usuarios e ir uno por uno va a ser que no, jeje, así que abro mi flamante y maravilloso Visual Basic 6.0 y me dispongo a hacer un pequeño programa capaz de hacer todo eso por mi.
El objetivo es leer los datos de la tabla 'nuke_users' y meterlos directamente a la de 'phpbb_users' con la fecha convertida. Observando las estructuras veo que hay columnas que faltan en ambas tablas, por ejemplo 'user_theme' está en la del nuke pero no en la del BB2 y en la del BB2 están 'user_login_tries' 'user_last_loging_try' que no están en la del nuke.
Bueno, que nadie se altere, jeje, lo que hago es crear un usuario normal en BB2 y ver esos campos así me hago una idea... me llama la atencion una columna 'user_level' esa debe de ser para los privilegios de cada usuario ya que el usuario 'admin' tiene un 1 y el 'prueba' tiene un 0, así que habrá que tenerlo en cuenta a la hora de añadir los datos y poner a todos los usuarios a level=0.
Tambien observo la columna 'user_avatar' que en Nuke es del tipo varchar(255) y en BB2 es varchar(100), con ayuda del PhpMyAdmin edito las propiedades de esa columna y la pongo igual que el Nuke ya que si intento meter mas de 100 caracteres en ese campo o bien se trunca o me saltará algún error y el invento nos explota en la cara.

Parece que no hay nada más por ahí asi que toca picar código en VB y a ver lo que sale. He trabajado mucho con VB y bases de datos ODBC pero con MySQL... veremos como conectamos y logeamos... como decía un humorista.. hoy no... mañaaaaaanaaaa.. jejej

Saludos!

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#6

Mensaje por Manunet »

Continúo:

Buscando info por los mundos de internait encuentro un "conector" para el VB, es un driver que conecta el ODBC que usa el VB con MySql y el funcionamiento es el mismo que con ODBC, lo único que cambia es la cadena de conexión que hay que especificar el driver que vamos a utilizar.
El siguiente código es el que he utilizado para exportar, modificar e importar los datos, en un principio la tabla 'nuke_user' la leía desde la Bd del Nuke pero al final importé la tabla al Phpbb2 e hice todo el trabajo desde la misma BD.
Lo digo porque los que sepan leer el codigo verán que hay dos conexiones a la misma BD, vamos, que no es un fallo, que lo podría haber hecho de otra manera pero como es 'pa mí' pues no me complico, ahora, que si alguien quiere algo parecido pues que lo comente y haber que se le puede hacer... Os hago un copy&paste:
----------------------------------------------------------------------
Option Explicit

Dim BD_Origen As ADODB.Connection
Dim BD_Destino As ADODB.Connection
Dim RS_Origen As ADODB.Recordset
Dim RS_Destino As ADODB.Recordset
Dim Fecha As Date
Dim Fecha2 As Long
Dim Cont As Long
Dim Nombre As String


Public Function Conectar()
Set BD_Origen = New ADODB.Connection
BD_Origen.CursorLocation = adUseClient
BD_Origen.Open "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=bdphpbb2;" _
& "UID=prueba;PWD=123456;PORT=3306;OPTION=131072"

Set BD_Destino = New ADODB.Connection
BD_Destino.CursorLocation = adUseClient
BD_Destino.Open "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=bdphpbb2;" _
& "UID=prueba;PWD=123456;PORT=3306;OPTION=131072"


Set RS_Origen = New ADODB.Recordset
Set RS_Destino = New ADODB.Recordset

RS_Origen.Open "Select * from nuke_users", BD_Origen, adOpenDynamic, adLockOptimistic
RS_Destino.Open "Select * from phpbb_users", BD_Destino, adOpenDynamic, adLockOptimistic

Stop
RS_Destino.MoveLast
RS_Destino.AddNew

While RS_Origen.EOF = False

For Cont = 0 To RS_Destino.Fields.Count - 1

Nombre = RS_Destino(Cont).Name

If Nombre = "user_last_login_try" Then GoTo fuera
If Nombre = "user_theme" Then GoTo fuera
If Nombre = "user_login_tries" Then GoTo fuera

If Nombre = "user_regdate" Then
If Mid(RS_Origen(Nombre), 1, 3) = "Jan" Then
RS_Origen(Nombre) = "Ene" & Mid(RS_Origen(Nombre), 4, Len(RS_Origen(Nombre)) - 3)
End If
If Mid(RS_Origen(Nombre), 1, 3) = "Aug" Then
RS_Origen(Nombre) = "Ago" & Mid(RS_Origen(Nombre), 4, Len(RS_Origen(Nombre)) - 3)
End If
If Mid(RS_Origen(Nombre), 1, 3) = "Dec" Then
RS_Origen(Nombre) = "Dic" & Mid(RS_Origen(Nombre), 4, Len(RS_Origen(Nombre)) - 3)
End If
If Mid(RS_Origen(Nombre), 1, 3) = "Apr" Then
RS_Origen(Nombre) = "Abr" & Mid(RS_Origen(Nombre), 4, Len(RS_Origen(Nombre)) - 3)
End If

RS_Destino(Nombre) = FechaToUnix(RS_Origen(Nombre))
Else
RS_Destino(Nombre) = RS_Origen(Nombre)
End If

If Nombre = "user_level" Then RS_Destino(Nombre) = 0

fuera:
Next Cont

'Stop
RS_Origen.MoveNext
RS_Destino.Update
RS_Destino.AddNew

Wend
Stop
End Function

Private Function FechaToUnix(Fecha As Date) As Long

Fecha = "00:00:00 " & Fecha
FechaToUnix = (Fecha - DateSerial(1970, 1, 1)) * 86400

End Function


Private Sub Form_Load()

Call Conectar
End Sub
----------------------------------------------------------------------

No voy a entrar en detalles de los comandos y tal, os explico por encima lo que hace este 'miniprogramilla':
Se abren dos conexiones a dos tablas distintas, 'nuke_user' ( rs_origen) y 'phpbb_user' ( rs_destino),
Leo el nombre de cada columna en rs_destino y la busco en rs_origen, asi me aseguro que sólo saco los datos que phpbb2 necesita, como hay 3 columnas en phpbb2 que no están en nuke pues me las salto con el goto. Cuando llego a la columna problematica 'user_regdate' el primer problema que tengo es que los meses están en inglés y la funcion conversora pues como que ese día no fué a clase y no entiende asi que me toca 'traducir' algunos nombres de los meses para pasarlos a la funcion, una vez que lo tengo todo preparado en el rs_destino lo grabo en la tabla del phpbb2 y paso al siguiente registro y así hasta el infinito y más allá, jejeje, cabe decir que cada registro cuenta con unas 47 columnas y en total hay unos 12.000 y pico registros, sacar cuentas y vereís la cantidad de datos que se mueven, pues bien, trabajando desde una red local todo el proceso ha tardado unos 3 minutos, no está nada mal... Una vez terminado entro al foro de phpbb2 y compruebo los datos y efectivamente están todos los usuarios con sus contraseñas, perfiles y todos los datos, maravilloso!
Ahora mismo está el foro phpbb2 en marcha y funcionando con todos los datos de los foros, subforos y usuarios, pero todavía no saquemos las cervezas, esto es la mitad del camino...
Por cierto, se me olvidaba, como no se me había ocurrido antes? el idioma español lo he sacado del foro del Nuke, aunque tiene problemas con los acentos y tal se puede leer en castellano así que otra cerveza para la nevera, que se vaya enfríando para cuando lleguemos al objetivo... phpbb3 3.1.8... ains...

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#7

Mensaje por Manunet »

Aqui estoy dando la brasa otra vez.. jeje...

Una vez que está todo montado, el Nuke y el phpbb2 hago un backup de todo, si hay algún programador por aqui, ya os conoceis la primera ley del "pica-código"... GRABA!!! por Dios... GRABAAAA!!!.. jajaja..

Ale, ya tenemos el primer paso, phpbb2 instalado, rellenado y en castellano... buf.. ahora toca el temible PhpBB3... de vuelta al PhpMyAdmin, creo un usuario, le pongo un pass, instalo el phpbb3 y por curiosidad le doy al conversor, en teoría debería de funcionar, peeeeero no lo hace, rellena algunas tablas y cuando llega a 'phpbb_post' mas o menos por el post 194.893 el firefox me dice que la conexión a expirado.... eing?? que pasa?, voy a la configuracion del php, aumento algunos valores, por ejemplo 'max_execution_time' lo paso de 60 a 600 a ver que hace y nada.. más de lo mismo... ains...
Pues nada, toca estudiar otra vez las estructuras de las bases de datos del bb2 y del bb3 para ver como podemos ir metiendo los datos, voy a aprovechar que el conversor ha metido algunos datos para ir viendo los pasos pero mucho me temo que no va a ser tan facil como antes... a simple vista veo que tengo que leer datos de varias tablas del bb2 y meterlos en una del bb3, por ejemplo, en el bb2 están las tablas 'post' y 'post_text' y en el bb3 está todo más ordenado en una sola tabla.

Continuará...

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#8

Mensaje por Manunet »

No os asusteís, que todavía sigo vivo, estos días ando liado y no encuentro hueco para seguir la "encrucijada", en cuando pueda continúo.
Saludos.

Manunet
Observador/a
Mensajes: 10
Registrado: 11 Abr 2016, 19:15

Re: Actualizar PhpNuke a PhpBB3.1.8

#9

Mensaje por Manunet »

Bueno, despues de unos meses "sabaticos" ya puedo decir que el foro lo he conseguido convertir de phpnuke a phpbb3 3.1.9!!!! Bieeeeeeennnn!!!
La solución, por ahora, es la siguiente:
una vez instalado phpbb3 en el server e instalado, le doy al conversor, meto los datos y tal y comienza su trabajo hasta que llega a un punto que el navegador me dice que se ha reiniciado la conexión, bien, pues indagando un poco por la base de datos del bb2 he encontrado unos post un tanto extraños y lo que he hecho ha sido saltarmelos, como? muy fácil, he cerrado el navegador, lo abro de nuevo, voy al bb3, le doy a continuar la conversión, me dice que se ha reciniciado la conexión, me fijo en la barra de direcciónes y hay un comando en la url que pone 'skiprows=168788', lo que he hecho ha sido poner la misma dirección pero cambiando el numero de skiprows a 168799 y tachán! sólo he perdido un post en la conversión, maravilloso!
Ahora toca hacer el foro al gusto del tema de lo que vá, cambiar un par de cosillas, añadirle otras tantas y ale, a disfrutarlo... jejej... simplemente maravilloso!

saludos a todos y hasta otra aventura !

slienzak
Observador/a
Mensajes: 1
Registrado: 28 Jun 2016, 10:10

Re: Actualizar PhpNuke a PhpBB3.1.8

#10

Mensaje por slienzak »

hay de todo http://777slotgames.com/index.php

Cerrado

Volver a “Foros de Soporte 3.1.x”