Errore durante l'importazione dei topics da Flarum (importazione utenti, gruppi OK)

Ciao a tutti, spero davvero che qualcuno possa aiutarmi con una migrazione da Flarum a Discourse su cui sto lavorando. Ho scavato a fondo per colmare una grande quantità di lacune nelle mie conoscenze e ho risolto alcuni errori basandomi su assunzioni che sembra faccia l’importatore attuale (ad esempio, i prefissi del database). Dopo tutto questo, sono riuscito a importare sia le Categorie che gli Utenti! :partying_face:

Ma ora incontro problemi nell’importare i veri e propri Argomenti, che sono, ovviamente, una delle cose più importanti. :grinning_face_with_smiling_eyes: E purtroppo sto trovando molto poco riguardo al messaggio di errore specifico che sto ricevendo. C’è un vecchio argomento qui su Meta a cui non è mai stato risposto, quindi nessuna assistenza lì. Spero di farla franca meglio. :grin:

Ecco il messaggio di errore completo. La parte in basso sembra essere il punto critico. Il “valore di chiave duplicato” identificato sembra davvero vago, quindi sono bloccato. Grazie in anticipo per qualsiasi chiarimento possiate fornire!

Si è verificato un errore durante il caricamento di ./script/import_scripts/flarum_import.rb.
Failure/Error: return exec_without_profiling(*args, &blk) unless SqlPatches.should_measure?

PG::InFailedSqlTransaction:
  ERROR:  la transazione corrente è abortita, i comandi vengono ignorati fino alla fine del blocco di transazione
# ./script/import_scripts/base.rb:243:in `ensure in block in all_records_exist?'
# ./script/import_scripts/base.rb:243:in `block in all_records_exist?'
# ./script/import_scripts/base.rb:224:in `all_records_exist?'
# ./script/import_scripts/flarum_import.rb:122:in `block in import_posts'
# ./script/import_scripts/base.rb:874:in `block in batches'
# ./script/import_scripts/base.rb:873:in `loop'
# ./script/import_scripts/base.rb:873:in `batches'
# ./script/import_scripts/flarum_import.rb:101:in `import_posts'
# ./script/import_scripts/flarum_import.rb:32:in `execute'
# ./script/import_scripts/base.rb:47:in `perform'
# ./script/import_scripts/flarum_import.rb:162:in `<top (required)>'
# ------------------
# --- Causa da: ---
# PG::UniqueViolation:
#   ERROR:  il valore di chiave duplicato viola il vincolo univoco "import_ids_pkey"
#   DETTAGLIO:  La chiave (val)=(3) esiste già.
#   ./script/import_scripts/base.rb:231:in `block in all_records_exist?'
Nessun esempio trovato.


Completato in 0,00004 secondi (i file hanno impiegato 5,56 secondi per essere caricati)
0 esempi, 0 fallimenti, 1 errore verificatosi al di fuori degli esempi

Sembra un indice corrotto, il che è sorprendente. Di quale versione di PostgreSQL si tratta? Probabilmente cancellerei il database e riproverei. In ogni caso, dovrai farlo diverse volte mentre correggi altri problemi relativi ai topic.

L’altra opzione è provare a ricreare quell’indice ed eliminare i record duplicati finché non funziona.

3 Mi Piace

Grazie Jay! Purtroppo ho perso questa installazione di Discourse a causa, beh, della mia stessa stupidità (ho gestito male una macchina virtuale). Quindi non posso tornare indietro e controllare, né eseguire la risoluzione dei problemi che hai consigliato, il che mi fa sentire piuttosto in colpa/stupido. Ma ecco la situazione.

Quello che posso dirti è che ho seguito le istruzioni di installazione di Discourse per Ubuntu:

Quindi si tratta della versione di Postgres installata in quel modo. E fino a questo punto avevo già provato a importare un paio di volte, senza cancellare il database in mezzo, quindi forse c’entra qualcosa con questo.

Ho seguito il metodo dell’ambiente di sviluppo Ubuntu invece di usare l’approccio Docker perché quando l’avevo provato in precedenza (su Digital Ocean), nessuna delle istruzioni che trovavo su come fare, beh, qualsiasi cosa, funzionava perché, presumibilmente, era all’interno di Docker/contenitori e richiedeva un approccio diverso.

Purtroppo sto operando ai limiti della mia comprensione, ma mi è sembrato valga la pena provare a farlo da solo. Con questo grande contrattempo e la consapevolezza che probabilmente ci saranno altri passaggi di risoluzione dei problemi da affrontare, penso che sia molto probabile che sia il momento di cercare aiuto professionale. Quindi mi metto in cammino per cercare di ottenere un budget per questo. :grinning_face_with_smiling_eyes:

Grazie ancora per il tuo aiuto!

Perfetto! Non c’è motivo di capire cosa sia successo a meno che non accada di nuovo.

2 Mi Piace