Switching Storage roots based on Environment or Project

We are trying to modify our configuration so that we can select which Storage Root we want to use on a per project basis. The schema can remain identical but the roots need to change. We haven’t had any luck so far.

We have attempted:

  • having just one storage root and overriding the value with an env var in the roots.yml. When launching DCCs however, the apps e.g. tk-maya are still initialised with the storage root as defined in the Shotgun Storages, so files are created and published to those roots.

  • having two storage roots, and setting the default value based on an environment variable, however this doesn’t work either as the env vars are not evaluated when this file is parsed.

  • having two storage roots, and using filters based on a value set in the project info, but I haven’t been able to storage roots to be filtered this way - only the schemas.

  • specifying the root in our templates using an environment variable, but again this isn’t evaluated, so it only seems to accept an explicit naming of the root.

Are we missing something obvious here?

I have seen this thread to which the answer is no, but I’m not sure if our case is exactly the same. We do not need the env var kept in the root for delayed evaluation. It just needs to be set at the point of checking out the project/config.

Thanks,
Joe