Modificação não interativa de SiteSetting via linha de comando

Estou escrevendo um script de migração e quero definir a configuração do site s3_upload_bucket programaticamente. Encontrei um método para defini-lo quando estiver dentro da instância do Docker:

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

Mas como o último contém um pipe, ao encadeá-lo com docker exec -it app <command>, ocorre um erro.

Existe uma maneira de fazer isso?

Obrigado antecipadamente.

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!