Scusa per la risposta di nuovo. Sto cercando di capire perché i permalink non vengono creati.
Per ricapitolare:
Sto utilizzando gli URL “brutti” predefiniti in SMF2 sul dominio radice principale. Discourse è installato su un sottodominio di quel dominio radice. Ho utilizzato l’importatore smf2.rb nell’ultima versione del repository di Discourse per convertire SMF2 in Discourse (seguendo la tua guida), ma dopo il completamento dell’importazione non ci sono permalink in Discourse.
Spero di ricevere aiuto per far funzionare questo per gli URL “brutti” predefiniti di SMF… qualsiasi indicazione sarebbe molto apprezzata. Grazie a tutti.
Dovresti cambiare quel permalink (o forse gli altri pochi?) in qualcosa che assomigli a quelli brutti? Anche se, a me sembrano già piuttosto brutti. Potresti anche regolare le permalink_normalizations all’inizio del file.
Sono confuso perché la versione a cui ho linkato sembra essere l’ultima versione “ufficiale”… ma sei la seconda persona che fa riferimento a una versione diversa. Cosa mi sto perdendo? Dove posso trovare la tua versione?
Ah, ecco! Scusa. Sembra che abbia cliccato sullo script smf1. Quindi guarda smf1.rb1, che si trova proprio accanto allo script smf2.rb che stai esaminando.
Puoi either guardare lo script smf1 o usare make_prettyurl_permalinks come modello per creare un make_uglyurl_permalinks. Tuttavia, questo legge dalla tabella degli URL eleganti, quindi potrebbe essere più semplice usare smf1.rb come modello, ma dovrei controllare il database per esserne sicuro. No. Questo non aiuterebbe molto a meno che non modifichi le funzioni create_xxx.
Scusa. Non vedo una soluzione che possa essere spiegata qui.
Sono arrivato fino a qui, ma non riesco a superare questo punto. Ho persino creato un nuovo utente sul server MySQL con una password nativa e ho provato, ma senza successo.
su discourse -c "bundle exec ruby script/import_scripts/smf2.rb /shared/smf2 -t UTC"
Caricamento dei gruppi esistenti...
Caricamento degli utenti esistenti...
Caricamento delle categorie esistenti...
Caricamento dei post esistenti...
Caricamento degli argomenti esistenti...
Traceback (most recent call last):
7: from script/import_scripts/smf2.rb:701:in `<main>'
6: from script/import_scripts/smf2.rb:28:in `run'
5: from script/import_scripts/smf2.rb:28:in `new'
4: from script/import_scripts/smf2.rb:62:in `initialize'
3: from script/import_scripts/smf2.rb:274:in `create_db_connection'
2: from script/import_scripts/smf2.rb:274:in `new'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': Crittografia RSA non supportata - il plugin caching_sha2_password è stato compilato con il supporto GnuTLS (Mysql2::Error)
OK, dopo MOLTE ore di tentativi per far funzionare questa cosa, ho individuato il problema e lo pubblico qui per chiunque altro possa rimanere bloccato come me.
Il contenitore Docker di MySQL è alla versione 8; per qualche motivo, la libreria MariaDB inclusa nel modello di MySQL non funziona.
Non ho incluso il file del modello MySQL nella configurazione del contenitore Docker di importazione: questa è stata la prima modifica.
Ho compilato il contenitore di importazione e vi sono entrato con ./launcher enter import
Questa procedura presenta un prompt interattivo e puoi selezionare le impostazioni predefinite (MySQL 8 con gli strumenti).
Poi ho installato la normale libreria MySQL 8 e ho proseguito con la compilazione:
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'
Una volta completato tutto il resto è rimasto invariato: l’importazione ora è in esecuzione.
Gli sviluppatori di Discourse potrebbero voler modificare gli script di importazione per tenere conto di questo problema; almeno ora è sui forum, così altri potranno vederlo se si trovano bloccati come me.
Ho trasferito manualmente la directory degli allegati da SMF2 a Discourse prima di importare, quindi ho eseguito l’importatore una volta, ma i caricamenti non appaiono nei post su Discourse. Qualche idea sul perché?
Ho già eseguito l’importatore una volta senza S3 abilitato, ma vorrei usare S3. Cosa devo fare?
Quindi pensavo che i problemi di importazione fossero forse legati a S3, ma sembra che S3 funzioni perfettamente. Il problema che riscontro è che, dopo aver eseguito lo script di importazione (con S3 abilitato) e aver ricostruito il contenitore di importazione, sembra che tutti i topic in Discourse manchino dei file caricati che sono allegati nei topic smf2. In altre parole, non c’è alcun segnale visivo che indichi la presenza di un caricamento in un topic di Discourse, mentre è chiaramente visibile come allegato nel suo equivalente topic smf2. Lo stesso risultato si ottiene quando importo con S3 disabilitato. Mi sto un po’ arrovellando senza idee. Avete qualche suggerimento?
Potrebbe essere che le immagini siano allegate al post, quindi lo script di importazione sa di doverle importare, ma che non siano referenziate nel post in modo che non appaiano. Devi modificare il testo del post per includere un collegamento alle immagini. Ho visto qualcosa del genere, credo con un forum diverso.