Seite 1 von 1

Zusammenlegung 2er aktiver phpBBs

Verfasst: 13.09.2004 18:37
von Buckaroo Banzai
Hallo Leute,

hat jemand schon mal zwei "aktive" phpBB 2.0.x in eines zusammengeführt? Also mit sämtlichen Beiträgen, Usern, Topics, Posts, etc.?

Ich versuche gerade den Aufwand zu bestimmen, falls es keine Scripts oder kleinere Tools dafür geben sollte.

Ausgangssituation:

Forum A, phpBB 2.0.6 (keine oder ganz wenige kleine MODs)
ca. 800 User und viele Beiträge
DB und Programmfiles auf Web-Hoster A

Forum B, phpBB 2.0.8a (wenige kleinere überschaubare MODs)
ca. 300 User und einige Beiträge
DB und Programmfiles auf Web-Hoster B

Es existieren in Forum A User, die auch in Forum B registriert sind.
Somit unterschiedliche User-IDs vorweisen.

Die User-Daten zusammenzuführen stellt meiner Meinung nach einen einfacheren Schritt dar, als die Beiträge.

Soll heißen:
1) Vergleich der Usertabelle auf doppelte/gleiche Usereinträge.
2) Doppelte User merken, ID-A und ID-B und entscheiden welcher überleben darf ;-) Tote ID puffern (wegen PNs und Beiträge des "toten" Users)
3) User in eines der Foren übernehmen, neue IDs vergeben, alte ID puffern (wegen PNs und Beiträge)

Bei den Topics und Beiträgen sähe das etwas umfangreicher aus.
Topic-Ersteller Alt-ID > Neu-ID
Beitrag-Ersteller Alt-ID > Neu ID
usw.
usw.

Wenn sowas schon mal von jemanden durchgeführt wurde, würde mich freuen, wenn er mir ein paar Tips geben könnte. Ansonsten, wäre das
nicht eine Herausforderung für einen Migrations-MOD, wie gesagt, falls es noch keinen geben sollte ;-)
Bei mir würde das verdammt lange dauern, sowas zu coden, da ich mir die ein oder anderen SQL Queries und PHP Routinen erst anlernen müßte. Aber probieren würde ich's schon.

Gruß
Jürgen

Verfasst: 13.09.2004 19:48
von Mungo
Hier gibts ein Script: http://www.phpbb.de/viewtopic.php?p=301080#301080
Jedoch weiß ich nicht, ob es schon einmal erfolgreich getestet wurde. Einfach mal testen. Vorher halt von beiden Foren ein Backup machen.

Ansonsten musst du es von Hand machen. Hier im Forum gibts aber schon eine Menge Posts dazu. Die Datenbankdoku sollte auch ganz nützlich sein.

Verfasst: 13.09.2004 19:58
von D@ve
Hmm ich hab mal drüber nachgedacht da so ein kleines Script für zu schreiben habs dann aber wiede gelassen, da es wahrscheinlich keiner Braucht...

Also ich würde so vorgehen:
Quellboard: Von dem die User und Beiträge exportiert werden
Zielboard: Board in das die User Beiträge importiert werden

Die Änderungen würde ich erstmal komplett im Quellboard machen, schauen ob alles läuft und dann einen Dump machen. Zudem würde ich die Foren und Kategorien erstmal komplett rüberziehen und die Posts dann gegebenenfalls im ACP von Hand kopieren:

- erstmal beide Boards einfrieren und Backups machen (wenn irgendwas schief geht hast Du sonst ein Problem)
- Im Zielboard die höchste User-ID ermitteln und im Quellboard alle User-IDs um diesen Wert ehöhen (sicherheitshalber noch einen Puffer einbauen)
- Das macht man mit allen Tabellen-Feldern wo die User-ID vorkommt (imo users, topics, posts, vote_results, vote_voters)
- das wiederholt man nun mit post_ids, topic_ids, forum_ids, cat_ids und vote_ids
- optional kann man das natürlich noch Gruppen Privaten Nachrichten und dergleichen machen würde ich aber lieber im neuen Board einfach neu anlegen bzw. drauf verzichten.
- nun würde ich erstmal testen ob das Quellboard noch funktioniert und ob noch alles am richtigen Platz ist (Foren in der richtigen Kategorie, Beiträge im richtigen Forum etc). Da die IDs nicht fortlaufend sein müssen sollte noch alles funktionieren. Man sollte allerdings auf keinen fall irgendwelche Operation vornehmen die die DB verändern (User anlegen, neue Posts schreiben etc.)
- Nun macht man einen Dump (OHNE Drop- und Create-Tables) von den veränderten Tabellen (categories, forums, posts, posts_text, topics, users; vote_desc, vote_results, vote_voters)
- den Dump fügt man nun einfach im neuen Forum ein
- nun muss man nur die Doppelten Usernamen löschen. Hier würde ich so vorgehen, dass einfach doppelte Namen mit einem Index (zB Dave_1, Dave_2, Dave_3 etc) versehen werden (wer den "echten" Namen bekommt würde ich anhand des Anmeldungsdatum bestimmen) die User mit doppelten Namen können sich dann halt in einer Übergangsphase einen andern Namen aussuchen...

Gruß, Dave

Edit: @Mungo: Na toll, hättest Du nicht zehn Minuten früher posten können, dann hätte ich mir das sparen können :D

Verfasst: 13.09.2004 20:03
von Mungo
Sorry :D ;-)

Verfasst: 14.09.2004 13:06
von Buckaroo Banzai
Hi Mungo,
Hi D@ve,

danke für die Tips und den Link zu dem Script.

Ich werd mich mal dran machen und es Lokal mit zwei Boards testen und ggf. das Script anpassen/erweitern (mit Erlaubnis von QCO) :wink:

Bei meiner geschilderten Ausgangssituation habe ich einen kleinen Punkt vergessen zu erwähnen, der das ganze noch kniffliger macht :D

Die Kategorien und Foren in Forum A sind nicht die gleichen wie in Forum B. Läßt sich aber vorher zu 80% anpassen. Aber der Schritt 1, mit hochsetzen der entsprechenden User-/Topic/Post IDs im Quellforum ist eine gute Idee. Und erst danach die Daten von Quell nach Ziel Forum schieben.

Wer dann mal berichten wies läuft. Kann aber was dauern, da ich im Moment nicht allzu viel Zeit habe und nach dem Prinzip, Langsam ernährt sich das Eichhörnchen Schritt für Schritt diese Migration vorantreibe.


Gruß
Jürgen