Modificación no interactiva de SiteSetting desde línea de comandos

Estoy escribiendo un script de migración y quiero establecer la configuración del sitio s3_upload_bucket programáticamente. Encontré un método para configurarlo cuando estoy dentro de la instancia de Docker:

echo 'SiteSetting.s3_upload_bucket="mybucket"' | bundle exec rails c

Pero esta última contiene una tubería, por lo que al encadenarla con docker exec -it app <command> resulta en un error.

¿Existe alguna forma de hacerlo?

Gracias de antemano.

Just add that SiteSetting like to your importer. I’ve added similar code to disable outgoing mail to several importers. You can help grep the importer directory for "Site* for examples.

I found the solution!

echo "SiteSetting.sso_url='newurl'" | docker exec -w /var/www/discourse -i app bundle exec rails c

I’m not clear what kind of migration script you’re writing. I do then in ruby and it’s easy to change site settings there.

This is a great trick, though!