¿Cambiar el idioma de la interfaz para muchos usuarios mediante una consulta a la base de datos?

Me pregunto si alguien podría ayudarme con una solicitud de soporte, por favor.

Necesito actualizar las preferencias de todos nuestros usuarios que actualmente tienen un idioma de interfaz de English (US) y cambiarlas a English (UK) en su lugar.

¿Existe una consulta del explorador de datos que pueda elaborar para emitir algún tipo de consulta SQL UPDATE con una cláusula where para seleccionar solo los de English (US)?

Como referencia/información… recientemente hemos dedicado mucho tiempo a actualizar todos nuestros Site texts (Textos del sitio) en el idioma English (UK) y durante las pruebas descubrimos que cualquiera que se registrara en nuestra plataforma hace más de un año estaba utilizando por defecto la configuración de sitio predeterminada anterior de English (US), en lugar de English (UK), aproximadamente 15.000 usuarios necesitan ser actualizados.

1 me gusta

No se pueden ejecutar consultas UPDATE a través del complemento Data Explorer porque es estrictamente de solo lectura.

Para actualizaciones masivas como esta, utilice la consola de Rails en su lugar:

User.where(locale: 'en').update_all(locale: 'en_GB')

Para obtener más ejemplos de cómo actualizar las preferencias de usuario masivamente, consulte:

1 me gusta

Si ejecuto esto en Data Explorer:

SELECT
  u.locale,
  COUNT(*) AS user_count
FROM users u
WHERE u.active = TRUE
  AND u.locale IN ('en', 'en_GB')
GROUP BY u.locale
ORDER BY user_count DESC, u.locale

Obtengo:

locale user_count
en_GB 19479
en 16014

Necesito ACTUALIZAR los 16,014 usuarios en a en_GB.

Y no soy lo suficientemente valiente como para ejecutar una consulta de actualización en producción :blush:

[quote=“jahan_gagan, post:2, topic:391635”]No puedes ejecutar consultas UPDATE a través del plugin Data Explorer porque es estrictamente de solo lectura.
[/quote]

Uf :sweat_smile:

¡Fantástico, gracias! :person_bowing:

Gracias @jahan_gagan

Primero hice una copia de seguridad de la base de datos :sweat_smile:

Luego ejecuté esto:

Funcionó perfectamente:

Loading production environment (Rails 8.0.4)
discourse(prod)=> User.where(locale: 'en').update_all(locale: 'en_GB')
=> 16016

Y mi consulta del Explorador de Datos ahora responde con:

locale user_count
en_GB 35493

¡Gracias! :clap:

1 me gusta