Migración a un nuevo servidor: error con la base de datos

Estamos intentando migrar todo a un nuevo servidor. Después de la migración, aparece este mensaje en la parte superior:

Cuando intento ejecutar lo siguiente dentro de la aplicación:

  # sudo ./launcher enter app
  # rails c
  > user = User.find_by_email("<admin_email>")
  > user.admin = true
  > user.save`

Recibo el siguiente error:

ActiveModel::MissingAttributeError: no se puede escribir el atributo desconocido ``
desde /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activemodel-6.0.2.2/lib/active_model/attribute.rb:206:in with_value_from_database' Causado por ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: identificador delimitado de longitud cero en o cerca de """" LINE 1: ... = '2020-04-23 16:30:36.173916' WHERE "site_settings"."" = 3 ^ desde /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in exec_params’
Causado por PG::SyntaxError: ERROR: identificador delimitado de longitud cero en o cerca de “”“”
LINE 1: … = ‘2020-04-23 16:30:36.173916’ WHERE “site_settings”.“” = 3
^
desde /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in `exec_params’

¿Alguna idea sobre cómo finalizar la instalación? Podría parecer que una tabla está corrupta.

¿Podrías volver atrás y explicarnos con más precisión qué estás intentando hacer? ¿Esto es antes o después de restaurar una copia de seguridad? ¿O se trata de una instalación nueva?

Pasos que realizamos:

  1. Instalamos la versión más reciente en el nuevo servidor
  2. Pusimos el servidor antiguo en modo solo lectura y realizamos una copia de seguridad
  3. Restauramos la copia de seguridad en el nuevo servidor

El error ocurre después del paso 3 y repetimos el proceso dos veces.

¿Tienes definida una dirección de correo electrónico de desarrollador en app.yml? ¿Ya has intentado reconstruir el contenedor?

Sí. Discourse funciona correctamente sin importar la migración. Sin errores. Después de restaurar la base de datos de respaldo, no se pueden modificar los ajustes porque aparece un error y al intentar activar el correo del desarrollador no se envía ningún mensaje. Por eso intenté activar la cuenta manualmente, pero entonces me encontré con ese error.

¿Has ejecutado ./launcher rebuild app después de la restauración de la copia de seguridad? ¿O has entrado en el contenedor y ejecutado rake db:migrate? Eso podría ayudar, pero no podemos asegurarlo hasta que lo intentemos :smiley:

Ya ejecuté la aplicación de reconstrucción del lanzador, pero el problema persiste. ¿Debo ejecutar rake desde el servidor o desde dentro de la aplicación (launcher enter app)?

./launcher rebuild app hará lo mismo.

¿Todavía tienes la instancia anterior en ejecución? Si es así, lo mejor que puedes hacer de ahora en adelante es destruir la nueva y reconstruirla con una copia de seguridad fresca desde la instancia antigua.

Sí, el servidor anterior sigue en funcionamiento. Tras investigar el problema más a fondo, esto ocurre incluso en el servidor antiguo. Aparece el mismo error. :face_with_raised_eyebrow:

¿Debería intentar limpiar la tabla site_settings y volver a configurarla manualmente? ¿Funcionará Discourse después de eliminar todos los registros de esta tabla manualmente desde PostgreSQL?

Evitaría hacer eso a menos que sepas lo que estás haciendo.

Quizás quieras publicar en Marketplace para obtener ayuda más avanzada. Parece que, lamentablemente, podrías tener una instalación rota.