Großartig! Schön, dass Sie es gelöst haben. Was war der Trick?
Hoffentlich brauchen Sie das nicht Discourse Migration - Literate Computing
Großartig! Schön, dass Sie es gelöst haben. Was war der Trick?
Hoffentlich brauchen Sie das nicht Discourse Migration - Literate Computing
Ich musste import_phpbb3.sh immer wieder ausführen, bis alle Kategorien importiert waren. Das Skript lief über Nacht, und eine Netzwerkunterbrechung verursachte auf meiner Seite einen Fehler. Ich habe das Skript neu gestartet und glaube, dass es jetzt funktioniert. Wenn es weitere Probleme gibt, muss ich die MySQL-Tabelle bereinigen.
Hallo zusammen! Das Forum ist größtenteils betriebsbereit… sieht fantastisch aus. Ich schreibe ein Skript, um das [/quote]-Tag zu ändern. Das Board ist ziemlich alt, stammt aus dem Jahr 2001, und ein einfacher Abstand oberhalb und unterhalb des schließenden Tags behebt vieles. Ich bin sicher, es gab eine Einstellung, die ich im Importskript hätte aktualisieren können, aber es ist meine erste Migration, also lerne ich unterwegs.
Frage: Ich korrigiere 10 Jahre an Daten und habe ein live phpBB-Board laufen. Das dauert eine Weile. Kann ich das Skript import_phpbb3.sh verwenden, um die letzten X Tage an Beiträgen aus meinem Forum zu importieren? Ich denke, es ist nur eine Zusammenführung, was das Skript angeht. Ich kann die Daten der letzten 7 Tage aus MySQL exportieren… aber ich weiß nicht, ob das funktionieren würde. Gedanken dazu?
Ich habe noch nicht überprüft, ob das Skript funktioniert… ich habe es mit kleinen Teilen getestet, aber nicht im Stapelbetrieb. Das Problem, das ich hatte, war ein Abstand oberhalb und unterhalb des schließenden Tags. Jetzt gehe ich Rasen mähen und komme später zurück, um nachzusehen:
batch_size = 1000
total_processed = 0
# Verarbeitet Beiträge im gesamten Forum in Stapeln
Post.find_in_batches(batch_size: batch_size) do |batch|
updated_posts = []
batch.each do |post|
original_raw = post.raw
# Wendet die Korrektur an
new_raw = original_raw.gsub(/\n\n\[\/quote\]\n\n\n/, "\n\n[/quote]\n\n")
if original_raw != new_raw
post.update_column(:raw, new_raw) # Direkte Spaltenaktualisierung, um Callbacks zu überspringen
updated_posts << post
total_processed += 1
end
end
# Nur die aktualisierten Beiträge neu backen, um die Last zu minimieren
updated_posts.each(&:rebake!)
puts "Ein Stapel von #{batch.size} wurde verarbeitet. Bisher insgesamt verarbeitet: #{total_processed}."
end
puts "Insgesamt #{total_processed} Beiträge im gesamten Forum verarbeitet."
Dies funktionierte bei einzelnen Beiträgen:
post = Post.find(344572) # Ersetzen Sie 344572 durch die korrekte ID
post.raw = post.raw.gsub(/\n\\n\[\/quote\]\\n\n\n/, “\n\n[/quote]\n\n”)
Ich würde das Skript so ändern, dass es dies beim Import der Daten tut. Ich bin überrascht, dass es das nicht bereits tut. Es lohnt sich, die Dinge genauer zu betrachten.
Bei mehreren Skripten, an denen ich gearbeitet habe, habe ich eine IMPORT_AFTER-Umgebungseinstellung hinzugefügt und die Abfragen so geändert, dass sie where some_timestamp > import_after_data enthalten. Ich glaube nicht, dass dieses eine solche Option hat, aber ich habe nicht genau darauf geachtet.
Aber Vorsicht: Es ist wahrscheinlich, dass Dinge aus Daten von vor 10 Jahren anders sind als die der letzten 2 Jahre. Daher ist das Testen nur mit aktuellen Daten großartig für die Fehlersuche bei Dingen, die überall vorkommen. Sie werden auch die gesamte Datenbank testen wollen.
Es gibt eine Menge verschiedener Dinge in der Mischung. Der Import ist zu etwa 99 % abgeschlossen… Ich muss nur zurückgehen und die Posts der letzten Wochen einsaugen
Sobald die Zeilenumbrüche hinzugefügt und dies behoben ist, sollte alles in Ordnung sein ![]()
Hier ist, was ich getan habe, um einen großen Teil meiner Beiträge nach dem Import zu bereinigen. Ich habe KI verwendet, um jemandem, der von PhpBB kommt, eine Erklärung zu geben. Ich war bis 5 Uhr morgens damit beschäftigt, ihn zum Laufen zu bringen ![]()
![]()
![]()
Um ein Ruby-Skript in Ihrer Discourse-Umgebung auszuführen, das Forenthemen in Stapeln von 1000 verarbeitet und bestimmte Transformationen auf jeden Beitrag innerhalb dieser Themen anwendet, befolgen Sie eine Reihe von Schritten, um auf Ihren Server zuzugreifen, die entsprechende Umgebung aufzurufen und das Skript auszuführen. Hier ist eine detaillierte Anleitung, einschließlich des Skripts selbst:
Verwenden Sie einen Secure Shell (SSH)-Client wie PuTTY für Windows, um eine Verbindung zu Ihrem Server herzustellen, auf dem das Discourse-Forum gehostet wird. Sie benötigen die IP-Adresse oder den Domainnamen Ihres Servers sowie Ihre Anmeldeinformationen (Benutzername und Passwort oder einen SSH-Schlüssel).
Sobald Sie sich auf Ihrem Server angemeldet haben, navigieren Sie zum Installationsverzeichnis von Discourse, normalerweise /var/discourse. Treten Sie dann mit den folgenden Befehlen in den Docker-Container ein, der Discourse ausführt:
bash
cd /var/discourse
./launcher enter app
Innerhalb des Docker-Containers können Sie mit Ihrer Discourse-Anwendung über die Rails-Konsole interagieren. Dies ist eine Ruby on Rails-Umgebung, die es Ihnen ermöglicht, Ruby-Code direkt gegen Ihre Discourse-Datenbank und Anwendungslogik auszuführen. Starten Sie die Konsole mit:
bash
rails c
Wenn die Rails-Konsole geöffnet ist, können Sie das Ruby-Skript ausführen. Das Skript sollte im Voraus vorbereitet und in Ihre Zwischenablage kopiert werden. In PuTTY können Sie das Skript einfügen, indem Sie mit der rechten Maustaste klicken oder Umschalt + Einfügen drücken.
Hier ist das vollständige Skript, das Sie verwenden werden:
code
# Ruft ein Array aller Themen-IDs ab
topic_ids = Topic.pluck(:id)
# Definiert die Stapelgröße
batch_size = 1000
current_batch_start = 0
while current_batch_start < topic_ids.length
# Verarbeitet 1000 Themen auf einmal
topic_ids[current_batch_start, batch_size].each do |topic_id|
# Ruft das Thema anhand der ID ab
topic = Topic.find(topic_id)
# Überspringt, wenn das Thema nil ist
next if topic.nil?
# Initialisiert einen Zähler für transformierte Beiträge in diesem Thema
transformed_count = 0
# Iteriert über jeden Beitrag innerhalb des Themas
topic.posts.each do |post|
# Flag, um zu verfolgen, ob Transformationen vorgenommen wurden
transformed = false
# Wendet Transformationen an
transformed |= post.raw.gsub!(/\u003c\/?r\u003e/, '').present?
transformed |= post.raw.gsub!(/\u003c\/?s\u003e/, '').present?
transformed |= post.raw.gsub!(/\u003c\/?e\u003e/, '').present?
transformed |= post.raw.gsub!(/\u003c\/?QUOTE[^\u003e]*\u003e/, '').present?
transformed |= post.raw.gsub!(/\u003cquote=““([^”]+)””\u003e/, '[quote="\\1"]').present?
transformed |= post.raw.gsub!(/\\\\n/, "\n").present?
transformed |= post.raw.gsub!(/\u003cquote=([^\\s]+\\s+post_id=\\d+\\s+time=\\d+\\s+user_id=\\d+\u003e/, '[quote="\\1"]').present?
transformed |= post.raw.gsub!(/\u003cURL url="([^"]+)"\u003e.*?\u003cLINK_TEXT text="[^"]+"\u003e[^\u003c]+\u003c\/LINK_TEXT\u003e.*?\u003c\/URL\u003e/, '\\1').present?
transformed |= post.raw.gsub!(/\u003c\/quote\u003e/, "\n[/quote]\n").present?
transformed |= post.raw.gsub!(/\A\n/, '').present?
# Speichert und backt den Beitrag neu, wenn Transformationen stattgefunden haben
if transformed
post.save!
post.rebake!
transformed_count += 1
end
end
# Gibt das Ergebnis für das aktuelle Thema aus
if transformed_count > 0
puts "Transformed #{transformed_count} posts in topic #{topic_id}."
else
puts "No transformations were necessary for topic #{topic_id}."
end
end
# Aktualisiert den Startindex für den nächsten Stapel
current_batch_start += batch_size
# Prüft, ob weitere Themen zu verarbeiten sind
if current_batch_start < topic_ids.length
puts "Completed a batch of #{batch_size} topics. Do you want to continue to the next batch? (yes/no)"
response = gets.strip.downcase
break unless response == 'yes'
end
end
So sollte es während der Ausführung aussehen.
No transformations were necessary for topic 19556.
No transformations were necessary for topic 35766.
No transformations were necessary for topic 35783.
No transformations were necessary for topic 35778.
No transformations were necessary for topic 35774.
No transformations were necessary for topic 35770.
Transformed 292 posts in topic 20234.
No transformations were necessary for topic 35781.
No transformations were necessary for topic 35779.
Transformed 242 posts in topic 20218.
Transformed 22 posts in topic 19522.
No transformations were necessary for topic 35771.
No transformations were necessary for topic 35767.
Transformed 2 posts in topic 22560.
No transformations were necessary for topic 35797.
No transformations were necessary for topic 35789.
No transformations were necessary for topic 35785.
No transformations were necessary for topic 31889.
Transformed 1 posts in topic 31831.
No transformations were necessary for topic 31792.
No transformations were necessary for topic 35794.
No transformations were necessary for topic 35815.
Ich erhalte diesen Fehler (nach der Migration, bei einer funktionierenden Standardinstallation), wenn ich versuche, den Anzeigenamen eines Benutzers (nicht den Benutzernamen) zu ändern, um Sonderzeichen einzufügen. Ich erhalte ein Popup mit einem internen Serverfehler, wenn ich es versuche, und die Protokolle zeigen denselben Fehler wie @DDo.
Bemerkenswerterweise können andere Benutzer ihren Anzeigenamen ändern, um dasselbe Zeichen (™) einzufügen. Der relevante Unterschied scheint zu sein, dass Benutzer, die sich nach der Migration angemeldet haben, UTF-8-Zeichen verwenden können, aber Benutzer, die sich nicht angemeldet haben, nur ASCII-8BIT verwenden können.
Ich gehe auch davon aus, dass dieser Fehler durch das Entfernen von discourse-migratepassword behoben würde, habe es aber nicht getestet.
Ist dies ein Fehler oder etwas, das diesem Plugin innewohnt? Wenn ersteres, ist es am besten, ein Problem auf Github zu melden?
Ich versuche, einen Import-Container zu (re)builden, aber es schlägt fehl:
FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/service/unicorn/run
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace fehlgeschlagen mit den Parametern {"tag"=>"precompile", "filename"=>"/etc/service/unicorn/run", "from"=>"PRECOMPILE_ON_BOOT=1", "to"=>"PRECOMPILE_ON_BOOT=0"}
bootstrap fehlgeschlagen mit exit code 1
** FAILED TO BOOTSTRAP ** bitte scrolle nach oben und suche nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann helfen, das Problem zu diagnostizieren.
Ich habe bereits alle Plugins deaktiviert, aber keine Änderung.
Hat jemand eine Idee?
Das ist also die erste Idee.
Ja, ich habe nichts gefunden, das mir einen Fehler anzeigt/aufzeigt… Ich werde noch einmal nachsehen…
hooks:
after_web_config:
- exec:
cd: /etc/service
cmd:
# - rm -R unicorn
- rm -R nginx
- rm -R cron
Ich habe die Zeile - rm -R unicorn in templates/import/phpbb3.template.yml auskommentiert und der Build wurde ohne Fehler durchgeführt.
Was ist hier passiert? phpbb3.template.yml ist die Version von Github, zwei Jahre alt. Es muss also eine Änderung an anderer Stelle geben?!?
Das könnte von davor sein, als sie von Ubuntu auf Debian umgestiegen sind. Diese werden wahrscheinlich nur aktualisiert, wenn jemand bemerkt, dass sie nicht mehr funktionieren.
Es ergibt für mich nicht viel Sinn, dass rm ein Problem war, aber ich achte nicht sehr auf solche Dinge, wenn mir niemand dafür bezahlt. Und selbst dann erinnere ich mich nicht, dass ich dem viel Aufmerksamkeit geschenkt hätte. ![]()
Ich dachte, wenn sich der Ersteller über eine fehlende Datei /etc/service/unicorn/run beschwert und genau diese entfernt wird, habe ich versucht, diesen Entfernungsbefehl zu kommentieren.
Hat funktioniert.
Vielleicht möchte jemand mit mehr Wissen darüber dies überprüfen und ein Update auf Github im Skript vornehmen. Ich kann auch einen PR erstellen – aber ohne jegliches Wissen darüber möchte ich das nicht.
Aber die Umstellung von Ubuntu auf Debian ändert vieles, das stimmt.
Zuerst einmal bin ich ein Docker-Neuling, daher ist es gut möglich, dass ich etwas vermasselt habe.
Ich habe eine saubere Installation von Discourse auf einem DigitalOcean Droplet mit Ubuntu 22.04, das die vorgefertigte App verwendet. Das Forum wurde problemlos erstellt und läuft in der Standardkonfiguration.
Wenn ich /var/discourse/launcher rebuild import ausführe, erhalte ich am Ende des Builds Folgendes:
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/service/unicorn/run
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"tag"=>"precompile", "filename"=>"/etc/service/unicorn/run", "from"=>"PRECOMPILE_ON_BOOT=1", "to"=>"PRECOMPILE_ON_BOOT=0"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Wenn ich ausführe: /var/discourse/launcher enter import
Erhalte ich:
86_64 arch detected.
Error response from daemon: No such container: import
Liegt das an den Fehlern am Anfang dieses Beitrags (und wenn ja, wie behebe ich das), oder mache ich etwas falsch?
Haben Sie import.yml erstellt und diesen Container wie in den Anweisungen beschrieben gestartet?
Die Anweisungen zeigen, wie man app.yml nach import.yml kopiert und “templates/import/phpbb3.template.yml” zu import.yml hinzufügt (was ich getan habe). Dann baut man import neu auf, was den Fehler in meiner OP erzeugt. Ich sehe nicht, wo es Anweisungen zum Erstellen eines Bootstrap (?) gibt.
Die Anweisungen sind ziemlich einfach, weshalb ich verwirrt bin, was schiefgeht.
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81a2f335fd01 local_discourse/app „/sbin/boot“ 14 Stunden Hoch 11 Stunden 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp app
Entschuldigung. Rebuild führt einen Bootstrap durch. Wenn fertig, lief der Import-Container.
Oh. Es tut mir sehr leid. Ich habe nicht mitbekommen, was vorher passiert ist. Es sieht so aus, als ob die phpbb3-Vorlage mit den jüngsten Änderungen an discourse_docker inkompatibel sein könnte. Aber das ist alles, was ich auf meinem Handy sagen kann.
Ich denke, wenn Sie eine Zeile in der phpbb3-Vorlage löschen, die “/etc/service/unicorn/run” löscht, könnte dies den Build abschließen.
Jay, danke für die Antwort auf dieses Problem. Der Build wird jetzt ordnungsgemäß abgeschlossen.
Nächstes Problem: Wenn ich import_phpbb3.sh ausführe, erhalte ich:
Der phpBB3-Import wird gestartet...
/usr/local/lib/ruby/3.3.0/psych/parser.rb:62:in `_native_parse': (unknown): did not find expected key while parsing a block mapping at line 3 column 1 (Psych::SyntaxError)
from /usr/local/lib/ruby/3.3.0/psych/parser.rb:62:in `parse'
from /usr/local/lib/ruby/3.3.0/psych.rb:455:in `parse_stream'
from /usr/local/lib/ruby/3.3.0/psych.rb:399:in `parse'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache/yaml.rb:129:in `strict_load'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache/yaml.rb:186:in `input_to_storage'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache/yaml.rb:232:in `fetch'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/compile_cache/yaml.rb:232:in `load_file'
from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:10:in `load'
from script/import_scripts/phpbb3.rb:20:in `<module:PhpBB3>'
from script/import_scripts/phpbb3.rb:16:in `<module:ImportScripts>'
from script/import_scripts/phpbb3.rb:15:in `<main>'
Ich vermute, dass etwas in meiner settings.yml-Datei nicht stimmt. Wie kann ich feststellen, woran es liegt?
database:
type: MySQL # currently only MySQL is supported
host: localhost
port: 3306
username:
password:
schema: phpbb
table_prefix: phpbb_ # Change this, if your forum is using a different prefix. Usually all table names start wi
th phpbb_
batch_size: 1000 # Don't change this unless you know what you're doing. The default (1000) should work just fin
e.
import:
# Set this if you import multiple phpBB forums into a single Discourse forum.
#
# For example, when importing multiple sites, prefix all imported IDs
# with 'first' to avoid conflicts. Subsequent import runs must have a
# different 'site_name'.
#
# site_name: first
#
site_name: Freedom Owners Forum
# Create new categories
#
# For example, to create a parent category and a subcategory.
#
# new_categories:
# - forum_id: foo
# name: Foo Category
# - forum_id: bar
# name: Bar Category
# parent_id: foo
#
new_categories:
- forum_id: general
name: General
- forum_id: systems
name: Boat Systems
- forum_id: photos
name: Photos
- forum_id: docs
name: Manuals and Documentation
- forum_id: buy
name: Buy/Sell/Trade
- forum_id: site
name: Site Usage
- forum_id: archives
name: Archives
# Category mappings
#
# * "source_category_id" is the forum ID in phpBB3
# * "target_category_id" is either a forum ID from phpBB3 or a "forum_id"
# from the "new_categories" setting (see above)
# * "discourse_category_id" is a category ID from Discourse
# * "skip" allows you to ignore a category during import
#
# Use "target_category_id" if you want to merge categories and use
# "discourse_category_id" if you want to import a forum into an existing
# category in Discourse.
#
# category_mappings:
# - source_category_id: 1
# target_category_id: foo
# - source_category_id: 2
# discourse_category_id: 42
# - source_category_id: 6
# skip: true
#
category_mappings:
- source_category_id: 8
target_category_id: systems
- source_category_id: 7
target_category_id: systems
- source_category_id: 9
target_category_id: systems
- source_category_id: 10
target_category_id: buy
- source_category_id: 11
target_category_id: general
- source_category_id: 12
target_category_id: general
- source_category_id: 13
target_category_id: general
- source_category_id: 14
target_category_id: general
- source_category_id: 16
target_category_id: docs
- source_category_id: 17
target_category_id: docs
- source_category_id: 18
target_category_id: general
- source_category_id: 19
target_category_id: general
- source_category_id: 20
target_category_id: general
- source_category_id: 21
target_category_id: docs
- source_category_id: 22
target_category_id: general
- source_category_id: 23
target_category_id: site
- source_category_id: 24
target_category_id: general
- source_category_id: 25
target_category_id: site
- source_category_id: 42
target_category_id: systems
- source_category_id: 43
target_category_id: docs
- source_category_id: 44
target_category_id: general
- source_category_id: 45
target_category_id: general
- source_category_id: 46
target_category_id: site
- source_category_id: 48
target_category_id: general
- source_category_id: 56
target_category_id: general
- source_category_id: 58
target_category_id: systems
- source_category_id: 59
skip: true
- source_category_id: 60
target_category_id: archives
- source_category_id: 61
target_category_id: archives
- source_category_id: 62
target_category_id: archives
- source_category_id: 63
target_category_id: archives
- source_category_id: 64
target_category_id: general
- source_category_id: 65
target_category_id: site
# Tag mappings
#
# For example, imported topics from phpBB category 1 will be tagged
# with 'first-category', etc.
#
# tag_mappings:
# 1:
# - first-category
# 2:
# - second-category
# 3:
# - third-category
#
tag_mappings: {}
# Rank to trust level mapping
#
# Map phpBB 3.x rank levels to trust level
# Users with rank at least 3000 will have TL3, etc.
#
rank_mapping:
trust_level_1: 200
trust_level_2: 1000
trust_level_3: 3000
# rank_mapping: {}
# WARNING: Do not activate this option unless you know what you are doing.
# It will probably break the BBCode to Markdown conversion and slows down your import.
use_bbcode_to_md: false
# This is the path to the root directory of your current phpBB installation (or a copy of it).
# The importer expects to find the /files and /images directories within the base directory.
# You need to change this to something like /var/www/phpbb if you are not using the Docker based importer.
# This is only needed if you want to import avatars, attachments or custom smilies.
phpbb_base_dir: /shared/import/data
site_prefix:
# this is needed for rewriting internal links in posts
original: freedomyachts.org # without http(s)://
new: https://test.freedomyachts.org # with http:// or https://
# Enable this, if you want to redirect old forum links to the new locations.
permalinks:
categories: true # redirects /viewforum.php?f=1 to /c/category-name
topics: true # redirects /viewtopic.php?f=6&t=43 to /t/topic-name/81
posts: false # redirects /viewtopic.php?p=2455#p2455 to /t/topic-name/81/4
# Append a prefix to each type of link, e.g. 'forum' to redirect /forum/viewtopic.php?f=6&t=43 to /t/topic-na
me/81
# Leave it empty if your forum wasn't installed in a subfolder.
prefix:
avatars:
uploaded: true # import uploaded avatars
gallery: true # import the predefined avatars phpBB offers
remote: false # WARNING: This can considerably slow down your import. It will try to download remote avatar
s.
# When true: Anonymous users are imported as suspended users. They can't login and have no email address.
# When false: The system user will be used for all anonymous users.
anonymous_users: true
# Enable this, if you want import password hashes in order to use the "migratepassword" plugin.
# This will allow users to login with their current password.
# The plugin is available at: https://github.com/discoursehosting/discourse-migratepassword
passwords: true
# By default all the following things get imported. You can disable them by setting them to false.
bookmarks: true
attachments: true
private_messages: true
polls: true
# Import likes from the phpBB's "Thanks for posts" extension
likes: false
# When true: each imported user will have the original username from phpBB as its name
# When false: the name of each imported user will be blank unless the username was changed during import
username_as_name: false
# Map Emojis to smilies used in phpBB. Most of the default smilies already have a mapping, but you can override
# the mappings here, if you don't like some of them.
# The mapping syntax is: emoji_name: 'smiley_in_phpbb'
# Or map multiple smilies to one Emoji: emoji_name: ['smiley1', 'smiley2']
emojis:
# here are two example mappings...
smiley: [':D', ':-D', ':grin:']
heart: ':love:'
# Map custom profile fields from phpBB to custom user fields in Discourse (works for phpBB 3.1+).
#
# custom_fields:
# - phpbb_field_name: "company_name"
# discourse_field_name: "Company"
# - phpbb_field_name: "facebook"
# discourse_field_name: "Facebook"
custom_fields: []
Sie haben den Benutzernamen und das Passwort vergessen.