Modification non interactive des paramètres du site en ligne de commande

J’écris un script de migration et je souhaite définir le paramètre de site s3_upload_bucket de manière programmatique. J’ai trouvé une méthode pour le définir à l’intérieur de l’instance Docker :

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

Mais comme cela contient un pipe, le chaîner avec docker exec -it app <command> entraîne une erreur.

Existe-t-il un moyen de faire cela ?

Merci d’avance.

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!