To be honest, I haven’t got as far as production yet. And this is still on my “to test” list. But theoretically…
Changes made to a projection via the UI appear as events in the projection’s own stream. So I presumed that I could change my projection by writing events to that stream. So my intention is to play the events for the projection itself from the ES instance in my staging environment to prod.
I trust that I’ll be able to use the same scripts that I use for duplicating / migrating entity streams.
With regard to the timing of this, I would not be triggering it post-deployment. My projections will be versioned (by name unless somebody can point out a better way), so I will not be changing existing projections. Therefore, I can have my new version projections running side-by-side with the previous ones before other front/back-end elements are deployed. Switching to the new projections is a config change.
Hope that gives you some ideas. I still need to test the “replay the projection’s-own-stream events” theory but I have faith in EventStore…