Imposible restaurar/actualizar discourse (PG::InvalidTextRepresentation: ERROR: sintaxis de entrada no válida para el tipo integer: "[]")

Hola.

Tengo una instancia ejecutándose actualmente en 2.9.0.beta4 y necesitaba migrarla, así que hice la copia de seguridad/restauración básica, pero la restauración falló en la nueva instancia. Decidí entonces intentar actualizar la instancia original, pero también falló. Ambas fallaron, aparentemente por la misma razón, durante el comando db:migrate.

Error de actualización: https://pastebin.com/raw/sQrnMe27
Error de restauración: https://pastebin.com/raw/idWYmEFq

¡Gracias por la ayuda!

2 Me gusta

Parece que puede ser un :bug:

Esto me parece que está en el núcleo, pero la pregunta estándar es ¿Tienes algún plugin no estándar?

1 me gusta

No, es uno vanilla :slight_smile:

Tuve un error similar en mi sitio de prueba donde tenía datos erróneos en mi configuración del sitio selectable_avatar, y tuve que actualizarla a través de la consola de Rails.

¿Te sientes cómodo usando la consola de Rails? Si es así, ¿podrías ejecutar esto y ver qué dice?:

SiteSetting.where(data_type:17)

4 Me gusta

No estoy seguro de si lo he hecho correctamente, pero esto es lo que obtengo:

=> #<ActiveRecord::Relation [#<SiteSetting id: 56, name: "selectable_avatars", data_type: 17, value: "[]", created_at: "2022-06-07 04:30:35.458837000 +0000", updated_at: "2022-06-08 08:14:54.196037000 +0000">]>

2 Me gusta

Creo que deberías poder ejecutar SiteSetting.selectable_avatars = \"\" (de nuevo desde la consola de rails), y luego estarás listo para una reconstrucción.

6 Me gusta

Actualmente, estoy reconstruyendo y acabo de pasar el estresante comando de migración de la base de datos, así que supongo que este está solucionado. ¡Muchas gracias a ambos por su rápida ayuda!

2 Me gusta

¡Parece que lo lograste! Deberías ver si puedes llamar la atención sobre esto, ya que estoy bastante seguro de que la migración debería migrar esos avatares seleccionables al nuevo formato.

2 Me gusta

Lo hace, y ha funcionado en todos los demás casos que hemos visto. [] no es un valor válido, ni siquiera en el formato antiguo, por lo que este caso en particular es bastante sorprendente. Quizás sea un remanente de algún trabajo manual en la consola, o una mala importación :thinking:

Si recibimos más informes, nos aseguraremos de agregar una solución automática para este caso.

2 Me gusta

Ah. Correcto. Normalmente, cuando obtengo ese error, es porque me equivoqué de tal manera que estaba accediendo a la variable incorrecta o algo así. Pero tal vez ese era el estado en el que quedó después de que se eliminaron todos los demás. Pero, en realidad, no presté suficiente atención. :wink:

1 me gusta

Nuestras configuraciones de ‘lista’ son una interfaz delgada sobre cadenas delimitadas por tuberías, por lo que, en teoría, una lista vacía debería almacenarse como una cadena vacía. Pero usted hace un buen punto: tal vez alguien estaba tratando de vaciar la lista e hizo algo como esto por accidente:

pry(main)> SiteSetting.selectable_avatars = []
=> []
pry(main)> SiteSetting.selectable_avatars
=> "[]"

(esto es con el formato antiguo. El nuevo formato tiene validaciones para evitar esto, incluso en la consola)

1 me gusta

Bueno, en nuestro caso, el foro se configuró a principios de este mes y no hubo interacciones con la consola en absoluto (ni importaciones). De hecho, hoy descubrí la consola de Rails :smile:

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.