Estoy intentando actualizar una instalación muy antigua.
Empecé con esto:
cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
Luego obtengo un error y, al desplazarme hacia arriba en el archivo de registro, el único error es este:
ERROR: Error al instalar bundler:
bundler-2.5.3 requiere la versión de Ruby >= 3.0.0. La versión actual de Ruby es 2.7.2.137.
¿Cómo consigo una nueva instalación de Ruby? El sistema se instaló originalmente desde una imagen de Docker en Digital Ocean y no se ha actualizado mucho, si es que se ha actualizado, en varios años.
Se está ejecutando en Ubuntu 18.04.
Ejecuté ./discourse-doctor
y hubo un estado de “detached head” (cabeza desvinculada) y luego una reconstrucción y luego el mismo error de Ruby.
Estoy totalmente perdido ahora.
¿Alguna ayuda sobre cómo hacer que funcione una actualización desde una versión antigua?
Dada la antigüedad de la máquina host, tu mejor opción aquí es probablemente hacer una copia de seguridad del sitio, crear un nuevo servidor, realizar la instalación y luego restaurar la copia de seguridad en el nuevo servidor.
Será menos trabajo (y mucho más fácil) que actualizar el servidor existente.
Pero como la instalación falló, no puedo ejecutar Discourse para hacer una copia de seguridad. Puedo y he tomado una instantánea de la gota de DigitalOcean, pero eso no es realmente una copia de seguridad, hasta donde yo entiendo.
Si tienes una instantánea del droplet con todos tus datos antes de intentar actualizar el contenedor, deberías poder obtener una copia de seguridad de esa.
Si no es así, casi seguro que sigues estando bien, pero necesitas a alguien experto en el proceso para poder extraer los datos de él si no puedes volver a poner en marcha el contenedor.
Ahora mismo, incluso con la puerta de enlace defectuosa, si puedes acceder al contenedor deberías poder ejecutar una copia de seguridad de discourse y obtener tus datos.