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?
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
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)?
¿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.
¿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?