違いはありませんでした。
これらが貼り付けた際のエラーなのか、それとも実際のymlファイルでの記述方法なのか分かりませんが、これらの記述があると問題が発生する可能性があります。(一部のコメントの末尾にある改行により、コメントされていない2行目が存在しています)
リストのインデントが正しくありません。
上記は以下のようにするべきです。
new_categories:
- forum_id: general
name: General
設定ファイルを検証するために https://www.yamllint.com/ を使用することをお勧めします。
ご返信ありがとうございます。コンテナ外でsettings.ymlを編集しても、実行中のものには影響しないことにすぐに気づきました。また、ymlの空白についても理解し、設定ファイルを修正しました。いずれにせよ、phpBBフォーラムのインポートはうまくいきましたが、一つ問題が発生しました。
phpBBでの私のユーザー名は、Discourseの管理者アカウントと同じでした。ログインできず、次のようなメッセージが表示されます。
すべての送信メールは管理者がグローバルに無効にしました。いかなる種類のメール通知も送信されません。
その結果、パスワードリセットメールを送信することができません。これはデータベースの設定でしょうか?もしそうであれば、コンテナの限られたリソースを使用してそのフィールドを更新できますか?他に何かアイデアはありますか?
migratepasswordプラグインがインストールされていますが、機能していないようです(おそらくパスワードが15文字未満だったため)。
レールコンソールから管理者ユーザーのメールを有効にできます。
./launcher enter import
rails c
> SiteSetting.disable_emails = "non-staff"
メールを使用せずに、コンテナから直接パスワードをリセットすることもできます。次を実行します。
./launcher enter import
rake admin:create
このドキュメント(およびコード)にいくつか変更を提案してもよろしいでしょうか。
disable_edit_notifications設定はもう存在しないため、これは不要になりました。disable system edit notificationsが、言及されたジョブを実行し、デフォルトで有効になっています。
- SSL の 2 行は
app.ymlでデフォルトでコメントアウトされていないため、これらの#を削除すると、抜粋が本来あるべき姿により正確になります。
-
このテンプレートは更新されるべきであり、そうしないとインポート時にユーザーはこのエラーに遭遇します。
-
また、これも(どこかで間違いを犯していない限り、これも修正されるべきことです):
IMPORT=1 bundle install を実行したところ、次のエラーが返されました:
[!] `Gemfile` の解析中にエラーが発生しました: 同じ gem を異なるバージョン要件で 2 回指定することはできません。
指定された gem: sqlite3 (~> 1.3, >= 1.3.13) および sqlite3 (>= 0)。Bundler は続行できません。
# /home/root/discourse/Gemfile から
# -------------------------------------------
# group :generic_import, optional: true do
> gem "sqlite3"
# gem "redcarpet"
# -------------------------------------------
実際、sqlite3 は数行上で既に指定されています:
# NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
gem "sqlite3", "~> 1.3", ">= 1.3.13"
gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
gem "reverse_markdown"
gem "tiny_tds"
gem "csv"
end
group :generic_import, optional: true do
gem "sqlite3"
gem "redcarpet"
end
インポートには開発環境を使用しました。関係があるかもしれません。
その情報は指示に記載されているか、テンプレートが更新されるべきです。これには数時間かかりました。
何と書く必要がありますか?
この行を削除したことで、コンテナの構築が成功しました。
この行を削除したのですか?
はい、それが解決策でした。
「こんにちは。phpBBフォーラムをDiscourseに正常に移行しました。すべてがスムーズに進み、フォーラムは正常に動作しています。しかし、phpBBデータをFTPでダウンロードする際にバイナリモードを有効にしなかったことに気づきました。そのため、すべての画像が破損しています。スクリプトを再度実行しましたが、画像は上書きされていません。破損した画像や添付ファイルを上書きするには、どのスクリプト(パスを含めて)を変更する必要がありますか?」
2回目の試行では、uploads テーブルに既に存在するアップロードがあるため、Discourse はアップロードをスキップします。Discourse は、明示的に指示されない限り、既存のアップロードを上書きすることを避けます。
attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) の @uploader.create_upload を呼び出す前に、以下のコードスニペットを追加すると、同じファイル名の既存のアップロードが最初に削除され、Discourse が再アップロードすることを強制できます。
existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
existing_upload.destroy
puts "Deleted existing upload: #{filename}"
end
upload = @uploader.create_upload(user_id, path, filename)
「ご返信ありがとうございます。残念ながら、変更は効果がありませんでした。スクリプトはわずか1分で実行されますが、添付ファイルは上書きされていません…」
データベースをワイプして、もう一度実行する必要があるでしょう。
どうすればいいですか?
ステップ 1: SSHでサーバーに接続します。
ssh username@server-address
ステップ 2: アプリケーションコンテナにアクセスします。
./launcher enter import
ヒント: docker ps を実行してコンテナ名を見つけます。デフォルトでは、通常 app という名前です。
ステップ 3: データベースをリセットします。
RAILS_ENV=production rake db:reset
Hey Canapin,
I’ve updated this part in the guide.
It depends. It’s still commented out when setting up the container for localhost. The guide assumes that a separate container is used for imports, which isn’t accessible over the internet, so obtaining certificates isn’t necessary in this case.
A PR for this has now been merged into core.
We are working on a fix for this, but I’ve updated the guide and added an FAQ on how to resolve this issue.
Discourse がサブディレクトリ(例:domain.org/forum)で実行される場合、パーマリンクは viewtopic.php?p=XXXX のようになっているため適用されません。機能するためには forum/viewtopic.php?p=XXXX である必要があります。
長年経ちますが、当社のケースで設定されたまま機能しないパーマリンクにつまずきました。URLパス要素で全てのパーマリンクにプレフィックスを付ける GUI/CLI 方法はありますか、または誰かが PostgreSQL クエリを追加できますか?この情報が最初の投稿に追加されれば、他の人も助かるかもしれません。