Grazie per l’aiuto!
Ho creato un nuovo backup dal vecchio server di produzione ancora pienamente funzionante.
Ho eliminato sia Docker che Discourse dal nuovo server di staging. Ho reinstallato entrambi seguendo le istruzioni ufficiali. Poi ho proceduto con le istruzioni per il ripristino da riga di comando.
Il backup è stato creato con docker-engine 17.05.0~ce-0~debian-stretch e deve essere ripristinato con docker-ce-cli 5:19.03.9~3-0~debian-buster. Questo comporta anche una versione più recente di PostgreSQL (vecchia: 10; nuova: 12).
È un approccio legittimo eseguire il backup di una versione obsoleta di Docker/PostgreSQL e tentare il ripristino su un’installazione aggiornata di Docker/Discourse?
Questa volta ho ottenuto un errore diverso.
ERROR: could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id"
DETAIL: Key (path, incoming_domain_id)=(/wiki/Tor_Browser, 3) is duplicated.
EXCEPTION: psql failed: DETAIL: Key (path, incoming_domain_id)=(/wiki/Tor_Browser, 3) is duplicated.
Log completo:
root@whonix-app:/var/www/discourse# discourse restore whonix-forum-2020-05-25-065253-v20200506044956.tar.gz
Starting restore: whonix-forum-2020-05-25-065253-v20200506044956.tar.gz
[STARTED]
'system' ha avviato il ripristino!
Segnalo il ripristino come in corso...
Verifica che esista /var/www/discourse/tmp/restores/default/2020-05-25-132224...
Copia dell'archivio nella directory tmp...
Decompressione dell'archivio, potrebbe richiedere del tempo...
Estrazione del file dump...
Validazione dei metadati...
Versione corrente: 20200524181959
Versione da ripristinare: 20200506044956
Attivazione della modalità sola lettura...
Sospensione di Sidekiq...
Attesa di fino a 60 secondi affinché Sidekiq completi l'esecuzione dei lavori...
Creazione delle funzioni mancanti nello schema discourse_functions...
Ripristino del file dump... (potrebbe richiedere del tempo)
[taglio]
ALTER TABLE
[taglio di molte righe duplicate ALTER TABLE]
ALTER TABLE
CREATE INDEX
[taglio di molte righe duplicate CREATE INDEX]
CREATE INDEX
ERROR: could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id"
DETAIL: Key (path, incoming_domain_id)=(/wiki/Tor_Browser, 3) is duplicated.
EXCEPTION: psql failed: DETAIL: Key (path, incoming_domain_id)=(/wiki/Tor_Browser, 3) is duplicated.
/var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:49:in `run'
script/discourse:143:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
script/discourse:284:in `<top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tentativo di rollback...
Esecuzione del rollback...
Pulizia dei dati...
Rimozione delle funzioni dallo schema discourse_functions...
Rimozione della directory tmp '/var/www/discourse/tmp/restores/default/2020-05-25-132224'...
Riattivazione di Sidekiq...
Disattivazione della modalità sola lettura...
Segnalo il ripristino come completato...
Notifica al 'system' della fine del ripristino...
Completato!
[FAILED]
Ripristino terminato.
root@whonix-app:/var/www/discourse#
Mi chiedo come sia possibile, dato che il mio vecchio server di produzione Discourse è ancora pienamente funzionante. Inoltre, questo è il secondo backup che provo.
Postgres 10 o Postgres 12?
MODIFICA:
root@whonix-app:/var/www/discourse# rails c
[1] pry(main)> IncomingReferer.where(path: "/wiki/Tor_Browser")
=> [#<IncomingReferer:0x0000561cba422f48
id: 11361,
path: "/wiki/Tor_Browser",
incoming_domain_id: 3>]
[2] pry(main)>
MODIFICA 2:
[6] pry(main)> IncomingReferer.where("path LIKE '%/wiki/Tor_Browser%'")
=> [#<IncomingReferer:0x0000561cc08882a8
id: 19,
path: "/wiki/Tor_Browser",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b3f48
id: 67,
path: "/wiki/Tor_Browser/Download_Confirmation_Screen",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b3e08
id: 331,
path: "/wiki/Tor_Browser/Internal_Updater",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b3cf0
id: 489,
path: "/wiki/Tor_Browser",
<page break> --- Premi invio per continuare ( q<enter> per interrompere ) --- <page break>
incoming_domain_id: 113>,
#<IncomingReferer:0x0000561cc08b3bb0
id: 2957,
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 617>,
#<IncomingReferer:0x0000561cc08b3a70
id: 4052,
path: "/wiki/Tor_Browser",
incoming_domain_id: 617>,
#<IncomingReferer:0x0000561cc08b38e0
id: 4196,
path: "/wiki/Tor_Browser",
incoming_domain_id: 1513>,
#<IncomingReferer:0x0000561cc08b37f0
id: 4220,
<page break> --- Premi invio per continuare ( q<enter> per interrompere ) --- <page break>
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 1513>,
#<IncomingReferer:0x0000561cc08b3700
id: 4307,
path: "/wiki/Tor_Browser",
incoming_domain_id: 1552>,
#<IncomingReferer:0x0000561cc08b34a8
id: 4346,
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 1552>,
#<IncomingReferer:0x0000561cc08b3318
id: 8713,
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b3188
<page break> --- Premi invio per continuare ( q<enter> per interrompere ) --- <page break>
id: 9746,
path: "/wiki/Tor_Browser_without_Tor",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b2f08
id: 10248,
path: "/wiki/Tor_Browser_without_Tor",
incoming_domain_id: 113>,
#<IncomingReferer:0x0000561cc08b2cb0
id: 11361,
path: "/wiki/Tor_Browser",
incoming_domain_id: 3>,
#<IncomingReferer:0x0000561cc08b2bc0
id: 11754,
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 113>,
<page break> --- Premi invio per continuare ( q<enter> per interrompere ) --- <page break>
#<IncomingReferer:0x0000561cc08b2ad0
id: 12094,
path: "/wiki/Tor_Browser/Advanced_Users",
incoming_domain_id: 4560>,
#<IncomingReferer:0x0000561cc08b28f0
id: 12892,
path: "/wiki/Tor_Browser",
incoming_domain_id: 4559>,
#<IncomingReferer:0x0000561cc08b25f8
id: 13038,
path: "/wiki/Tor_Browser",
incoming_domain_id: 4560>]
[7] pry(main)>
[8] pry(main)>