Skip to content

Upgrade Frappe 15 → 16

Piano

  1. Salvare database, file del site e configurazione.
  2. Aggiornare il runtime a Python 3.14, Node 24, MariaDB 11.8 e Redis 8.8.
  3. Ricreare il virtualenv Bench con Python 3.14.
  4. Portare Frappe su version-16, aggiornare requisiti e asset.
  5. Eseguire patch, migrazioni e verifiche applicative.
  6. Promuovere lo stesso artifact da dev a staging e poi a main.

Sviluppo con bench persistente

Prima di aggiornare:

bash
make backup
docker compose -f deploy/compose/development.yml --env-file .env stop frappe

Avviare temporaneamente l’immagine aggiornata e migrare il bench:

bash
docker compose -f deploy/compose/development.yml --env-file .env run --rm --entrypoint bash frappe
cd /home/frappe/data/frappe-bench
bench migrate-env /usr/local/bin/python3.14
bench switch-to-branch version-16 frappe --upgrade
bench update --requirements
bench build --apps frappe,ez_factoryos
bench --site factory.local migrate
exit
docker compose -f deploy/compose/development.yml --env-file .env up -d

Staging e produzione

Le immagini server sono immutabili e contengono già Frappe 16. Il servizio configurator aggiorna configurazione, asset e schema prima dell’avvio di backend, websocket, worker e scheduler.

La promozione resta:

text
dev → staging → main

Su main il workflow verifica che l’albero Git coincida con staging e promuove il tag OCI staging a main senza rebuild.

Verifica

bash
bench version
bench --site factory.local migrate
bench --site factory.local run-tests --app ez_factoryos
python --version
node --version
docker compose -f deploy/compose/development.yml --env-file .env ps

Atteso:

  • Frappe sul branch version-16
  • Python 3.14.x
  • Node 24.x
  • servizi healthy
  • login Desk raggiungibile su /desk
  • worker, scheduler, websocket e generazione PDF operativi

Rollback

  1. Fermare lo stack senza eliminare volumi.
  2. Ripristinare l’immagine/tag precedente.
  3. Ripristinare il backup database e i file del site.
  4. Ripristinare il bench Python 3.11/Frappe 15 solo insieme al relativo database.

Non riutilizzare un database già migrato a Frappe 16 con un’immagine Frappe 15. Non eliminare volumi e non eseguire reset del database durante il rollback.

Documentazione Ez FactoryOS — Ortobellina / EzBit