Solicitud de mejora para el script de importación de phpBB3

También probé esto:

root@vps116136-import:/var/www/discourse/config# su discourse -c “bundle exec rake db:drop”
exec: line 1: “bundle: command not found

Lo siento, debería haber anticipado estas comprobaciones.

Intenta ejecutar el comando drop con esta variable de entorno:

cd /var/discourse
./launcher enter <nombre-de-tu-contenedor>

su discourse
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

Este en particular no funcionó porque no estabas en el directorio donde se encuentra el Gemfile del proyecto, en tu caso: /var/www/discourse.

Una nota rápida: la forma más fácil habría sido tener una copia de seguridad desde el primer inicio del foro, de modo que simplemente la restaurarías antes de intentar importar de nuevo, pero asumiendo que no la tenías, nos quedamos con ese restablecimiento parcial.

Aún sin éxito.

root@vps116136-import:/var/www/discourse# su discourse
discourse@vps116136-import:/var/www/discourse$ DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
PG::InsufficientPrivilege: ERROR:  debe ser el propietario de la base de datos discourse
No se pudo eliminar la base de datos ‘discourse’
rake abortado!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR:  debe ser el propietario de la base de datos discourse (ActiveRecord::StatementInvalid)

…

Intentando ahora como root…

1 me gusta

No.

root@vps116136-import:/var/www/discourse# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
fatal: detected dubious ownership in repository at ‘/var/www/discourse’
To add an exception for this directory, call:

    git config --global --add safe.directory /var/www/discourse

rake aborted!

Olvida mis primeras instrucciones :smiling_face_with_tear:

  1. Usa docker cp para sacar tu copia de seguridad más reciente del contenedor. Las copias de seguridad se encuentran dentro de /shared/backups/default.
  2. Elimina la carpeta compartida del directorio de tu instalación (el lugar desde donde ejecutas ./launcher): rm -rf /var/discourse/shared
  3. Reconstruye el contenedor usando ./launcher rebuild <nombre-del-contenedor>.

Esto debería funcionar, pero ten cuidado de no perder tu copia de seguridad. Estaba tratando de evitar sugerirlo para que no borres accidentalmente tu copia de seguridad, pero parece ser el único camino a seguir.

Va a tardar un tiempo. El archivo tar.gz tiene 15 GB.

1 me gusta

De hecho, va a tardar…

200

Se han hecho .5GB desde que empecé.

1 me gusta

Terminado.

Hecho.

Completo. Listo para ejecutar el script de importación, pero…

/var/discourse/shared/standalone/import
├── data
├── mysql
└── settings.yml

La he liado :index_pointing_up: , ¿verdad?

1 me gusta

Sí.

Supongo que creaste un volumen para tu contenedor mysql dentro de la carpeta compartida. Si es así, desafortunadamente tendrás que volver a iniciar el contenedor y restaurar la base de datos de nuevo.
Los archivos adjuntos simplemente puedes copiarlos.
La configuración de settings.yml no debería ser tan difícil de configurar de nuevo.

No estoy seguro de lo que significa volver a crear un contenedor. La primera vez coloqué phpbb_mysql.sql en el directorio mysql según estas instrucciones. ¿Hay algo más que deba hacer además de eso?

Los archivos adjuntos puedes simplemente copiarlos.

Sí. Excepto que el tar.gz tiene 15 GB porque hay 45 GB de datos en el directorio /files de phpBB. ¡He estado administrando mi foro durante 22 años, ya sabes! Así que sí, los copiaré de vuelta. Pero lo más probable es que sea mañana antes de que retome esto.

1 me gusta

Sí, esa es la naturaleza de las migraciones de comunidades. Un buen consejo sería empezar con una muestra más pequeña y, una vez que domines el proceso, puedes ejecutar una importación completa.

Hay esfuerzos en marcha para hacer que las herramientas sean más flexibles y el proceso menos redundante, pero este es un tema muy complejo.

Espero que todo vaya bien en tu intento de mañana.

¡De acuerdo! Pero phpBB no facilita la reducción del tamaño de la muestra. Estoy un poco atascado con lo que tengo. Aún así, era un entorno de prueba y nada es irrecuperable.

¡Gracias! Publicaré de nuevo aquí. Por cierto, ahora que soy un experto en docker cp :zany_face:, ¿sería un gran problema modificar el script de ruby para que imprima el post_id de phpBB cuando ocurra algo como esto?

8000 / 24451 ( 32.7%) [677 items/min] W, [2026-01-13T02:50:22.466363 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466500 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466600 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range