FlarumからDiscourseへの移行が失敗しました

すべて設定しましたが、flarum_import.rb をインポートしようとしました。しかし、thimira@THIMIRA:~/discourse/script/import_scripts$ bundle exec ruby flarum_import.rb と表示されます。
トレースバック(バックトレース):
1: from flarum_import.rb:3:in <main>'

どうすればよいですか?助けてください。

推測するには、もっと多くの出力を含める必要がありますが、(それについて私が間違っていることを証明するために)、3行目は次のようになります。

 require "mysql2"

したがって、それをGemfileに追加して bundle install を実行する必要があるようです。

「いいね!」 2

それをどうすればいいですか? Gemfile に追加するにはどうすればいいですか?

DMをご確認ください。メッセージを残しておきました。

最近では、これらのgemを手動でGemfileに追加する必要はありません。それらはすでに存在しています。コマンドの前にIMPORT=1を使用するだけで有効にできます。

したがって、次のようにします。

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

bundle installでエラーが発生した場合は、bundle config unset deploymentも実行する必要がある場合があります。

「いいね!」 1

私の経験では、IMPORT=1 を実行すると、すべての追加インポートに必要な依存関係がすべてインストールされていない場合に多くのエラーが発生します。そのうちのいくつかは特定が難しいです。

「いいね!」 1

それは私の経験とは異なります。また、どちらの方法で行っても依存関係に影響を与える可能性がある理由がわかりません。

@thimiraonline、うまくいきましたか?

このようなものです。

 tiny_tds (2.1.5) のインストール中にエラーが発生したため、Bundler を続行できません。

そして、tiny_tds をインストールすると(これは簡単ではありません)、次のようになります。

 sqlite3 (1.4.2) のインストール中にエラーが発生したため、Bundler を続行できません。

しかし、含めれば

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

うまくいくかもしれません。次に試してみます。一時的に、これらの依存関係をインストールするために独自のテンプレートを作成しましたが、必要なかったことが判明したことを願っています。

試しましたが、彼のセットアップには db テーブルのプレフィックスがあり、スクリプトにはプレフィックスの設定がありません。テーブルの名前を変更するように依頼したので、もう一度試します。

「いいね!」 2

. . . しかし、インポートテンプレートはGemをGemfileに追加するため、IMPORT=1 を試すと以下のようになります。

[!] `Gemfile` の解析中にエラーが発生しました: 同じgemを異なるバージョン要件で指定することはできません。
指定されたのは: sqlite3 (~> 1.3, >= 1.3.13) と sqlite3 (>= 0) です。Bundler は続行できません。

# /var/www/discourse/Gemfile の 272 行目から
# -------------------------------------------
# gem 'mysql2'
> gem 'sqlite3'
# gem 'tiny_tds'
# -------------------------------------------

Gemfile がバージョンを指定しており、テンプレートが指定していないためです。

そのため、かなり苦労しましたが、IMPORT=1 を役立つものにする方法が見つかりませんでした。OS にそれらの依存関係をすべてインストールした場合、またはコンテナに依存関係をインストールする方法を手作業で作成した場合、開発インスタンスでは機能すると思います。

ああ、しかし、mbox インポートは sqlite3 をインストールするだけではありません。そのため、mbox をインポートしたい場合以外は、それは良いことではありません。

おそらく、sqlite3 インポートテンプレートの PR を提出するでしょう。

「いいね!」 2

スクリプトを 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': expected file /home/user/disco urse/lib/freedom_patches/ip_addr.rb to define constant FreedomPatches::IPAddr, but didn't (Zeitwerk:: NameError)