Database
Porto usa lo stesso schema su due database, con migrazioni numerate allo stesso modo.
SQLite (predefinito)
Sezione intitolata “SQLite (predefinito)”Senza DATABASE_URL Porto usa il file porto.db nella cartella dati (PORTO_DATA_DIR). Non serve installare
nulla: il driver è incluso nel binario. È adatto alla maggior parte dei porti ed è l’unico database dell’app
desktop.
PostgreSQL (facoltativo)
Sezione intitolata “PostgreSQL (facoltativo)”È consigliato oltre i 300 posti, con più marine nella stessa installazione o se la tua infrastruttura usa già
PostgreSQL. Imposta DATABASE_URL:
DATABASE_URL=postgres://porto:PASSWORD@db.interno:5432/porto?sslmode=requireI caratteri speciali della password vanno codificati (@ diventa %40). Con Docker usa
deploy/docker-compose.postgres.yml (PostgreSQL 17), vedi Docker.
Migrazioni
Sezione intitolata “Migrazioni”- Con
PORTO_AUTO_MIGRATE=true(predefinito)porto serveapplica le migrazioni all’avvio. - Con
PORTO_AUTO_MIGRATE=falseil server non parte finché ci sono migrazioni in sospeso: applicale conporto migrate up.porto migrate status --checkesce con codice 1 se ce ne sono (utile negli script). - Le migrazioni vanno solo avanti: non si torna a una versione precedente di Porto sullo stesso database. Per tornare indietro si ripristina il backup fatto prima dell’aggiornamento.
Da SQLite a PostgreSQL (e viceversa)
Sezione intitolata “Da SQLite a PostgreSQL (e viceversa)”Il formato di backup non dipende dal database:
- sulla vecchia installazione:
porto backup --out porto.porto-backup; - avvia la nuova installazione con la stessa versione di Porto, la stessa
PORTO_SECRET_KEYe il nuovoDATABASE_URL; porto restore --in porto.porto-backup(su un database vuoto) oppure con--forceper svuotarlo prima.
Vedi Backup e ripristino.
Porto è sviluppato da Coste360 SRL. Codice sorgente disponibile con licenza BSL 1.1; il marchio Porto è escluso dalla licenza.