Migrazione da Flarum a Discourse fallita

Ho configurato tutto e ho provato a importare flarum_import.rb. Ma dice thimira@THIMIRA:~/discourse/script/import_scripts$ bundle exec ruby flarum_import.rb
Traceback (most recent call last):
1: from flarum_import.rb:3:in <main>'

Cosa devo fare? Aiuto.

Dovrai includere piÚ output affinchÊ qualcuno possa indovinare, ma (dimostrando che mi sbaglio su questo), la riga 3 è

 require "mysql2"

quindi sembrerebbe che tu debba aggiungerlo al Gemfile ed eseguire bundle install.

2 Mi Piace

Come si fa? Intendo come aggiungerlo al Gemfile?

Controlla i messaggi diretti. Ti ho lasciato un messaggio lĂŹ.

Al giorno d’oggi non è necessario aggiungere manualmente queste gem al Gemfile, sono già presenti. Devi solo abilitarle usando IMPORT=1 davanti al tuo comando.

Quindi fai semplicemente

IMPORT=1 bundle install
IMPORT=1 bundle exec ruby flarum_import.rb

Se bundle install ti restituisce un errore, potresti anche dover eseguire bundle config unset deployment.

1 Mi Piace

La mia esperienza è che se fai IMPORT=1 ottieni un sacco di errori se non hai installato tutte le dipendenze per tutte le cose di importazione aggiuntive, e alcune di queste sono difficili da capire.

1 Mi Piace

Hmm, questa non è la mia esperienza e non riesco a capire come farlo in un modo o nell’altro possa influenzare le dipendenze?

@thimiraonline ha funzionato per te?

Cose del genere:

 Si è verificato un errore durante l'installazione di tiny_tds (2.1.5) e Bundler non può continuare.

E poi se installi tiny_tds, che non è banale, ottieni

 Si è verificato un errore durante l'installazione di sqlite3 (1.4.2) e Bundler non può continuare.

Ma penso che se includi

           - "templates/import/mysql-dep.template.yml"
           - "templates/import/mbox.template.yml"
           - "templates/import/mssql-dep.template.yml"

Allora potrebbe funzionare. È quello che proverò dopo; per un po’ ho creato i miei template per installare quelle dipendenze, ma spero di aver scoperto che non ne avevo mai avuto bisogno.

Ci ho provato ma la sua configurazione ha un prefisso per le tabelle del database e lo script non ha un’impostazione per il prefisso. Gli ho chiesto di rinominare le tabelle e riproverò.

2 Mi Piace

. . . ma i modelli di import aggiungono la Gem al Gemfile, quindi se provi a usare IMPORT=1 ottieni


[!] Si è verificato un errore durante l'analisi di `Gemfile`: Non è possibile specificare la stessa gemma due volte con requisiti di versione diversi.
Hai specificato: sqlite3 (~> 1.3, >= 1.3.13) e sqlite3 (>= 0). Bundler non può continuare.

# da /var/www/discourse/Gemfile:272
# -------------------------------------------
# gem 'mysql2'
> gem 'sqlite3'
# gem 'tiny_tds'
# -------------------------------------------

PoichĂŠ il Gemfile specifica una versione e il modello no.

Quindi, dopo averci provato duramente, non trovo un modo per rendere utile IMPORT=1. Immagino che funzionerebbe su un’istanza di sviluppo in cui hai installato tutte quelle dipendenze nel sistema operativo, o hai creato manualmente un modo per installare le dipendenze in un container.

Oh, ma l’importazione mbox fa molto di più che installare sqlite3, quindi non è una buona cosa da fare a meno che tu non voglia davvero importare un mbox.

Forse invierò una PR per un modello di importazione sqlite3.

2 Mi Piace

sto riscontrando questo errore quando provo a eseguire lo script con IMPORT=1

1: from /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:28:in `require' /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitw erk/loader/callbacks.rb:25:in `on_file_autoloaded': si aspettava che il file /home/user/disco urse/lib/freedom_patches/ip_addr.rb definisse la costante FreedomPatches::IPAddr, ma non l'ha fatto (Zeitwerk:: NameError)