Modifica non interattiva delle impostazioni del sito da riga di comando

Sto scrivendo uno script di migrazione e vorrei impostare programmaticamente l’impostazione del sito s3_upload_bucket. Ho trovato un metodo per impostarla all’interno dell’istanza Docker:

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

Ma l’ultima contiene una pipe, quindi concatenarla con docker exec -it app <command> genera un errore.

Esiste un modo per farlo?

Grazie in anticipo.

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!