Upgrade path from v1.0.0

Hi Folks,

We have following setup in production:

Temporal Version 1.0.0
MySQL 5.7 (AWS Aurora)
Not using Cassandra and/or Elastic Search
Temporal Server, Worker and Web are running as ECS Service in AWS.

I am looking for some help in upgrading my temporal setup (production). From whatever I have learnt from the community, my upgrade path looks like:

1.0.0 → 1.1.0 → 1.2.0 → 1.3.0 → 1.4.0 → and so on until → 1.9.0

I understand that I need to follow below steps for each environment. Of course, to try it out, I first need a Staging environment:

  1. export CURRENT_VERSION=1.0.0
    export NEXT_VERSION=1.1.0

  2. Start downtime

  3. Stop Temporal Server and Web AWS ECS Services that’s running currently.

  4. Run the temporal-sql-tool using docker image temporalio/admin-tools:${NEXT_VERSION} to upgrade my default and visibility schema.

  5. Run the temporalio/server:${NEXT_VERSION} and temporalio/web:${NEXT_VERSION} docker images as a service in AWS.

  6. Validate if all looks good. (sounds painful as we have a lot of different workflows)

  7. Repeat steps 1…6 until you reach 1.9.0 (or the latest at the time of executing)

Questions:

  1. Is my upgrade path understanding correct?

  2. If the above understanding is correct, this looks like a real painful process. Are there any plans to make this less painful?

  3. In one of the threads, I found a suggestion that 1.0.0 can directly be upgraded to 1.3.0. If I read it correctly, then why’s that so? I can see that v1.1.0 does have some schema changes.

  4. Our worker and workflow code is all bundled within a single docker image. The docker entrypoint command finds all Temporal workflows and activities and registers them with the worker using java sdk. How does this upgrade impact my worker setup?

1 Like

I also have this question; I am a bit more ahead on v1.3.1; on EKS w/ Aurora MySQL.

Looking at the Releases, I saw the below having “Schema Changes”
1.1.0 → 1.5.0 → 1.7.0 → 1.9.0

So maybe your step will be like:
Check out v1.1.0 tool to migrate the DB; run v1.1.0 server
Check out v1.5.0 tool to migrate the DB; run v1.5.0 server
Check out v1.7.0 tool to migrate the DB; run v1.7.0 server
Check out v1.9.0 tool to migrate the DB; run v1.9.0 server

try 1.0.x → 1.3.x → 1.4.x → 1.5.x → 1.6.x → 1.7.x → 1.8.x → 1.9.x

usually we only guarantee 1.n.x → 1.n+1.x forward / backward compatibility

you do not need to shutdown Temporal server.

  • checkout the version of DB schema associated with corresponding server version
  • upgrade DB schema version
  • upgrade Temporal version
  • loop

I can see that v1.1.0 does have some db schema changes. How are we able to skip 1.1.x and directly move to 1.3.x?