Ripristino dello stato precedente dell’ambiente senza snapshot cloud
Questo articolo mostra due soluzioni per eseguire il rollback di un ambiente senza avere un’istantanea dell’ambiente su Adobe Commerce sull’infrastruttura cloud.
Prodotti e versioni interessati
- Adobe Commerce sull'infrastruttura cloud, tutte le versioni supportate
Scegliere il caso più appropriato:
- Se si dispone di una build stabile ma non di uno snapshot valido - Scenario 1: nessuna snapshot, build stabile (connessione SSH disponibile).
- Se la build è interrotta e non si dispone di uno snapshot valido - Scenario 2: nessuno snapshot; build interrotta (nessuna connessione SSH).
Scenario 1: nessuna istantanea, compilazione stabile (connessione SSH disponibile) scen2
Questa sezione mostra come eseguire il rollback di un ambiente quando non è stata creata una copia istantanea ma è possibile accedere all’ambiente tramite SSH.
I passaggi sono i seguenti:
- Disabilita Gestione configurazione.
- Disinstallare il software Adobe Commerce.
- Reimposta il ramo Git.
Dopo aver eseguito questi passaggi:
- l'installazione di Adobe Commerce ritorna allo stato Vanilla (database ripristinato; configurazione di distribuzione rimossa; directory in
var
cancellate) - il ramo git è reimpostato sullo stato desiderato in passato
Leggi i passaggi dettagliati seguenti:
Passaggio 0 (prerequisito): rimuovere config.php per disabilitare Configuration Management disable_config_management
È necessario disabilitare Gestione configurazione in modo che non applichi automaticamente le impostazioni di configurazione precedenti durante la distribuzione.
Per disabilitare Gestione configurazione, assicurarsi che la directory /app/etc/
non contenga i file config.php
(per Adobe Commerce 2.4.x) o config.local.php
(per Adobe Commerce 2.1.x).
Per rimuovere il file di configurazione, effettuare le seguenti operazioni:
-
Rimuovi il file di configurazione:
- Per Adobe Commerce 2.4:
code language-php rm app/etc/config.php
- Per Adobe Commerce 2.1:
code language-php rm app/etc/config.local.php
Per ulteriori informazioni sulla gestione della configurazione, consulta:
- Riduci i tempi di inattività dell'implementazione su Adobe Commerce nell'infrastruttura cloud nella nostra knowledge base di supporto.
- Gestione della configurazione per le impostazioni dell'archivio nella documentazione per gli sviluppatori.
Passaggio 1: disinstallare il software Adobe Commerce con il comando setup:uninstall setup-uninstall
La disinstallazione del software Adobe Commerce provoca la perdita e il ripristino del database, la rimozione della configurazione di distribuzione e la cancellazione delle directory in var
.
Consulta Disinstallare il software Adobe Commerce nella documentazione per gli sviluppatori.
Per disinstallare il software Adobe Commerce, effettuare le seguenti operazioni:
-
Esegui
setup:uninstall
:code language-php php bin/magento setup:uninstall
-
Confermare la disinstallazione.
Per confermare la disinstallazione corretta viene visualizzato il seguente messaggio:
[SUCCESS]: Magento uninstallation complete.
Questo significa che abbiamo ripristinato l’installazione di Adobe Commerce (incluso DB) al suo stato autentico (Vanilla).
Passaggio 2: reimpostare il ramo Git reset-git-branch
Con il ripristino di Git, il codice viene ripristinato allo stato desiderato nel passato.
-
Clona l’ambiente nell’ambiente di sviluppo locale. Puoi copiare il comando nella console Cloud:
-
Accedi alla cronologia dei commit. Utilizza
--reverse
per visualizzare la cronologia in ordine inverso per maggiore comodità:code language-git git log --reverse
-
Seleziona l’hash di commit su cui sei stato bravo. Per ripristinare il codice al suo stato autentico (Vanilla), individua il primo commit che ha creato il ramo (ambiente).
-
Applica ripristino Git rigido:
code language-git git reset --h <commit_hash>
-
Invia modifiche al server:
code language-git git push --force <origin> <branch>
Dopo aver eseguito questi passaggi, il ramo Git viene reimpostato e l’intero registro Git changelog è cancellato. L’ultimo push Git attiva la ridistribuzione per applicare tutte le modifiche e reinstallare Adobe Commerce.
Scenario 2: nessuna istantanea; compilazione interrotta (nessuna connessione SSH) scen3
In questa sezione viene illustrato come eseguire il rollback di un ambiente quando si trova in uno stato critico: la procedura di distribuzione non riesce a creare un’applicazione funzionante, rendendo così la connessione SSH non disponibile.
In questo scenario, devi innanzitutto ripristinare lo stato di funzionamento dell’applicazione Adobe Commerce utilizzando Git reset, quindi disinstallare il software Adobe Commerce (per eliminare e ripristinare il database, rimuovere la configurazione di distribuzione, ecc.). Lo scenario prevede gli stessi passaggi dello scenario 1, ma l’ordine dei passaggi è diverso ed è presente un ulteriore passaggio: forzare la ridistribuzione. I passaggi sono i seguenti:
2. Disabilita gestione configurazione.
3. Disinstallare il software Adobe Commerce.
4. Forza ridistribuzione.
Dopo aver eseguito questi passaggi, si otterranno gli stessi risultati dello Scenario 1.
Passaggio 4: forzare la ridistribuzione
Esegui un commit (potrebbe essere vuoto, anche se non è consigliato) e invialo al server per attivarne la ridistribuzione:
git commit --allow-empty -m "<message>" && git push <origin> <branch>
Se l'installazione:disinstallazione non riesce, reimpostare il database manualmente
Se l'esecuzione del comando setup:uninstall
ha esito negativo e non può essere completata, è possibile cancellare il database manualmente con la procedura seguente:
-
Connettersi al database MySQL:
code language-sql mysql -h database.internal
-
Rilascia il database
main
:code language-sql drop database main;
-
Crea un database
main
vuoto:code language-sql create database main;
-
Eliminare i seguenti file di configurazione:
config.php
,config.php
.bak
,env.php
eenv.php.bak
.
Dopo aver reimpostato il database, invia un messaggio Git all'ambiente per attivare la ridistribuzione e installa Adobe Commerce in un database appena creato. Oppure eseguire il comando di ridistribuzione.
Lettura correlata
Nella documentazione per gli sviluppatori: