How to downgrade to a certain revision or release with the Docker setup?


(Jan Philip Gehrcke) #1

After checking out the “latest and greatest” I have landed a pretty severe problem as reported here: Login broken in latest revision – users can not log in anymore. In order to get my forum up again I obviously try to find an elegant way to “downgrade”. What is the recommended way to rebuild a container using an older version of Discourse? Is that even supported? In my case I would want to go back from 0.9.9.14 to 0.9.9.13, i.e. to a certain git revision or tag.


(Jakob Borg) #2

You should be able to use the params/version field in app.yml, i.e. something like this:

[...]
expose:
  - "80:80"   # fwd host port 80   to container port 80 (http)
  - "2222:22" # fwd host port 2222 to container port 22 (ssh)
  - "443:443"

params:
  # git revision to run
  version: v0.9.9.13

env:
  # comma-separated emails
[...]

and then do the regular ./launcher rebuild app or destroy, bootstrap, start sequence manually.


(Sam Saffron) #3

Downgrading is not supported, if you database has migrated forward there are no guarantees it will work on an older version of the code.


(Jeff Atwood) #4

So this assumes people have a historic backup of the db on that day? If automatic daily backups in Discourse are enabled, they will. So they do have an older db they could roll back to somehow if need be.


(Jakob Borg) #5

If we know what we were running the day before… Which we currently don’t unless we take special care since only the version number is shown in the admin UI, but running version X really means some random commit between the tag X and the tag X+1? Or are migrations only performed at version changes?


(Sam Saffron) #6

Migrations are performed arbitrarily, there are no hard rules. Sometimes we run 0 in a week, sometimes 10.