diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78c08230f..42cadcd4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
# Changelog Fab-manager
+- Updated upgrade instructions
+
## v5.0.0 2021 June 10
- Ability to use PayZen as the payment gateway
diff --git a/doc/production_readme.md b/doc/production_readme.md
index c7ec193cc..893ce4cfd 100644
--- a/doc/production_readme.md
+++ b/doc/production_readme.md
@@ -14,10 +14,12 @@ You will need to be root through the rest of the setup.
1.4. [Prepare the server](#prepare-the-server)
2. [Install Fab-manager](#install-fab-manager)
3. [Docker utils](#docker-utils)
-4. [Update Fab-manager](#update-fabmanager)
-4.1. [Steps](#steps)
-4.2. [Upgrade to the last version](#upgrade-to-the-last-version)
-4.3. [Upgrade to a specific version](#upgrade-to-a-specific-version)
+4. [Update Fab-manager](#update-fab-manager)
+4.1. [Scripted update](#scripted-update)
+4.2. [Update manually](#update-manually)
+4.2.2. [Manual update steps](#manual-update-steps)
+4.3. [Upgrade to the last version](#upgrade-to-the-last-version)
+4.4. [Upgrade to a specific version](#upgrade-to-a-specific-version)
## Preliminary steps
@@ -130,75 +132,87 @@ docker-compose ps
```bash
docker-compose run --rm -e VAR1=xxx -e VAR2=xxx fabmanager bundle exec rails my:command
```
-
+
+## Update Fab-manager
-## Easy upgrade
+When a new version is available, follow this procedure to update Fab-manager in a production environment.
+You can subscribe to [this atom feed](https://github.com/sleede/fab-manager/releases.atom) to get notified when a new release comes out.
-Starting with Fab-manager v4.5.0, you can upgrade Fab-manager in one single easy command, that automates the procedure below.
-To upgrade with ease, using this command, read the GitHub release notes of all versions between your current version, and the target version.
+
+### Scripted update
-**You MUST append all the arguments** of the easy upgrade commands, for **each version**, to the command you run.
+Starting with Fab-manager v4.5.0, you can upgrade Fab-manager in one single easy command, specified in the GitHub releases notes.
+To upgrade multiple versions at once, read the GitHub release notes of all versions between your current version, and the target version.
+
+**You MUST append all the arguments** of the upgrade commands, for **each version**, to the command you run.
E.g.
-If you upgrade from 1.2.3 to 1.2.5, with the following release notes:
+If you upgrade from 1.2.3 to 1.2.6, with the following release notes:
```markdown
## 1.2.4
\curl -sSL upgrade.fab.mn | bash -s -- -e "VAR=value"
## 1.2.5
\curl -sSL upgrade.fab.mn | bash -s -- -c "rails fablab:setup:command"
+## 1.2.6
+\curl -sSL upgrade.fab.mn | bash -s -- -p "rails fablab:do:things"
```
Then, you'll need to perform the upgrade with the following command:
```bash
-\curl -sSL upgrade.fab.mn | bash -s -- -e "VAR=value" -c "rails fablab:setup:command"
+\curl -sSL upgrade.fab.mn | bash -s -- -e "VAR=value" -p "rails fablab:do:things" -c "rails fablab:setup:command"
```
+> ⚠ Do not confuse commands prefixed with `-p` and with `-c` because they are not intended to run at the same moment of the upgrade process.
-## Update Fab-manager
+
+### Update manually
-*This procedure updates Fab-manager to the most recent version by default.*
-**If you upgrade Fab-manager from a version >= 4.5.0, we recommend using the easy upgrade script above instead.**
+**If you upgrade Fab-manager from a version >= 4.5.0, we recommend using the upgrade script above.**
-> ⚠ If you are upgrading from a very outdated version, you must first upgrade to v2.8.3, then to v3.1.2, then to 4.0.4, then to 4.4.6 and finally to the last version
+> ⚠ If you are upgrading from a very outdated version, you must first upgrade to these versions in order:
+> - v2.8.3
+> - v3.1.2
+> - v4.0.4
+> - v4.4.6
+> - v4.7.12
+> After that, you can finally update to the last version
> ⚠ With versions < 4.3.3, you must replace `bundle exec rails` with `bundle exec rake` in all the commands above
-
-### Steps
+
+#### Manual update steps
-When a new version is available, follow this procedure to update Fab-manager app in a production environment, using docker-compose.
-You can subscribe to [this atom feed](https://github.com/sleede/fab-manager/releases.atom) to get notified when a new release comes out.
+0. Read carefully the changelog of the last version you are upgrading to. It will contain important instructions about the upgrade process.
-1. go to your app folder
+1. Go to your app folder
`cd /apps/fabmanager`
-2. pull last docker images
+2. Pull last docker images
`docker-compose pull`
-3. stop the app
+3. Stop the app
`docker-compose stop fabmanager`
-4. remove old assets
+4. Remove old assets
`rm -Rf public/packs/ public/assets/`
-5. compile new assets
+5. Compile new assets
`docker-compose run --rm fabmanager bundle exec rails assets:precompile`
-6. run specific commands
+6. Run specific commands
**Do not forget** to check if there are commands to run for your upgrade. Those commands
- are always specified in the [CHANGELOG](https://github.com/sleede/fab-manager/blob/master/CHANGELOG.md) and prefixed by **[TODO DEPLOY]**.
- They are also present in the [releases page](https://github.com/sleede/fab-manager/releases).
+ are always specified in the [CHANGELOG](https://github.com/sleede/fab-manager/blob/master/CHANGELOG.md) and prefixed by **[TODO DEPLOY]**.
Those commands execute specific tasks and have to be run manually.
You must prefix the commands starting by `rails...` or `rake...` with: `docker-compose run --rm fabmanager bundle exec`.
In any other cases, the other commands (like those invoking curl `\curl -sSL... | bash`) must not be prefixed.
You can also ignore commands only applicable to development environnement, which are prefixed by `(dev)` in the CHANGELOG.
-7. restart all containers
+7. Restart all containers
```bash
docker-compose down
@@ -212,7 +226,7 @@ You can check that all containers are running with `docker-compose ps`.
It's the default behaviour as `docker-compose pull` command will fetch the latest versions of the docker images.
Be sure to run all the specific commands listed in the [CHANGELOG](https://github.com/sleede/fab-manager/blob/master/CHANGELOG.md) between your actual, and the new version in sequential order.
-__Example:__ to update from 2.4.0 to 2.4.3, you will run the specific commands for the 2.4.1, then for the 2.4.2 and then for the 2.4.3.
+__Example:__ to update from v2.4.0 to v2.4.3, you will run the specific commands for the v2.4.1, v2.4.2 and v2.4.3.
### Upgrade to a specific version