Migration von WB

Themen aus der aktuellen Entwicklung - hier bitte auch Vorschläge und Wünsche posten, welchen Themen wir uns annehmen sollten :)
Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Migration von WB

Beitrag von shadowcat » Do 10. Jul 2014, 18:44

Es ist ja mal an der Zeit, ein Migrationstool zu bauen, das die Migration von WB zu BC unterstützt. Allerdings ist das eine ziemlich große Baustelle und nicht so einfach, wie es "damals" bei LEPTON war. Dementsprechend wird es sicherlich einige Monate in Anspruch nehmen, bis das Tool so weit gediehen ist, daß man es auf die Fläche loslassen kann.

Wichtig!

Es wird NICHT möglich sein, eine 100%-Abdeckung zu erreichen. Es gibt in WB etliche Module, die schon dort nicht mehr richtig funktionieren und es daher auch in BC nicht tun werden. So habe ich etwa GoogleMaps in BC nicht ans Laufen bekommen, manch andere Module funktionieren nur teilweise. Ein Migrationstool wird daran nichts ändern können, und wir werden auch keine Klimmzüge unternehmen, um alten Kram in BC quasi mit der Brechstange doch noch ans Laufen zu bekommen. Das heißt im Umkehrschluß: Wenn ein Modul, das einem ans Herz gewachsen ist und auf das man unter keinen Umständen verzichten kann und will, in BC nicht funktioniert, erübrigt sich der Umstieg. Wobei eine Anfrage im Forum natürlich nie schaden kann, manchmal sind es ja doch nur Kleinigkeiten, die man lösen kann.

Stand der Planung

In Planung - und auch schon in Arbeit - ist ein eigenständiges Tool, welches "irgendwo" auf dem Server installiert wird, auf dem WB läuft. Im ersten Schritt gibt man den Pfad zur WB-Installation und den Datenbank-Port an, wobei letzterer eigentlich nur bei einer Portable eine Rolle spielt.

Im nächsten Schritt ermittelt das Tool die installierten Sprachen, Module und Templates. Hierbei werden automatisch diejenigen Addons ausgenommen, von denen wir wissen, daß eine Migration problematisch oder unmöglich ist. Das betrifft z.B. diejenigen Module, die es in BC ebenfalls gibt. Außerdem ermittelt das Tool, welche Sprachen, Addons und Templates in Verwendung sind, und markiert diese gleich vor. Man kann nun die Vorgabe anpassen oder belassen, bevor man zum zweiten Schritt weiter geht.
2014-07-10_192528.png
2014-07-10_192528.png (38.18 KiB) 2296 mal betrachtet
Im nächsten Schritt werden nun die Datenbanktabellen ausgelesen. Auch hier wird nun versucht, diejenigen Tabellen zu ermitteln, die für die ausgewählten Module gebraucht werden. Das klappt nicht zu 100% zuverlässig, weil die Tabellen nicht immer so heißen wie das Modul (z.B. Brax_Highslide_Gallery -> mod_brax_highslide_whatever, Teil 'Gallery' fehlt). Durch sukzessive Erweiterung der Konfigurationsdatei, die auch die Blacklist der Addons beinhaltet, die nicht migriert werden können, werden wir aber eine gute Abdeckung erreichen können.
2014-07-10_192803.png
2014-07-10_192803.png (30.73 KiB) 2296 mal betrachtet
Nachdem nun alles ausgewählt ist, wird im nächsten Schritt ein Dump der Datenbank erzeugt. An dieser Stelle ist nun noch eine Menge Arbeit nötig, da sich manche Tabellen, die es schon in WB gab, in BC strukturell geändert haben. Derzeit erfolgt der Dump "as is", ich überlege noch, ob ich das Konvertieren erst beim Import erledige.

EDIT: Nach dem Export der Tabellen:
2014-07-11_170820.png
2014-07-11_170820.png (12.21 KiB) 2283 mal betrachtet
Noch offen

Nach derzeitiger Planung habe ich NICHT vor, die Module per Tool aus WB zu exportieren, da das sehr lange dauern kann. Vielmehr gedenke ich, dem Benutzer einfach am Schluß nochmal eine Liste der Module auszugeben, die er markiert hat, mit dem Hinweis, daß diese in BC zu installieren sind, bevor die Datenbank importiert wird. Eventuell kann dieser Part auch von SyncData2 übernommen werden, da muß ich aber noch mit Ralf sprechen, weil ich glaube, daß die Konfigurationsmöglichkeiten von SyncData2 nicht ausreichend sind.

Die Verzeichnisse pages und media wären dann ebenfalls von Hand zu transferieren, wie es auch bei einem Serverumzug von WB notwendig ist. Wer mit Softlinks arbeiten kann und/oder einen Shellzugang zu seinem Server hat, kann beide Optionen nutzen und das Verfahren damit beschleunigen.

Vorgehen beim Import

Ausgehend von der Annahme, daß die Module von Hand in BC installiert werden, kann der Import der Datenbank vom Tool dann anschließend durchgeführt werden. Grundsätzlich ist die Reihenfolge egal, abgesehen davon, daß natürlich nichts funktionieren wird, bevor das passiert ist. :D

Besondere Problemstellen
  • Geänderte Tabellenstrukturen (betrifft nur Core-Tabellen, da Zusatzmodule ja in passender Version installiert werden können)
  • Geänderte Einstellungen
  • Pfade und URLs in Datenbanktabellen (müssen konvertiert werden)
  • Autoincrement-Felder
Noch ein wichtiger Hinweis am Schluß:

Bei der Migration wird davon ausgegangen, daß vorhandene Seiten in BC ersatzlos entfallen! Das gilt natürlich auch für die bei der Installation erzeugten Standardseiten. Das heißt, der Import wird die pages-Tabelle komplett leeren, und der Benutzer sollte das gleiche mit dem page-Verzeichnis tun, bevor er dieses aus WB kopiert.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Module

Beitrag von shadowcat » Do 10. Jul 2014, 18:45

Wer helfen möchte, kann sich WB-Module nehmen und diese mit BC testen. Ich habe ein eigenes Unterforum für Testberichte eingerichtet und kümmere mich nach Möglichkeit um problematische Module. Das hilft auch, unsere Kompatibilitätsschnittstelle weiter zu verbessern.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
MK70
Beiträge: 176
Registriert: Sa 21. Dez 2013, 15:38
Wohnort: 47809 Krefeld
Kontaktdaten:

Re: Migration von WB

Beitrag von MK70 » Fr 11. Jul 2014, 12:23

Wenn es das für WB gibt, wird das auch mit Lepton klappen?
Ich hab ja bei ner richtig großen Seite, Lepton genutzt... 8-)
Mit creativen Grüßen
MK

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Fr 11. Jul 2014, 12:24

Müssen wir dann sehen. Erst mal eines hinkriegen.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
MK70
Beiträge: 176
Registriert: Sa 21. Dez 2013, 15:38
Wohnort: 47809 Krefeld
Kontaktdaten:

Re: Migration von WB

Beitrag von MK70 » Fr 11. Jul 2014, 12:53

Ok... 8-)
Keine Hektik... 8-)
Mit creativen Grüßen
MK

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Fr 11. Jul 2014, 15:45

Einstellungen die NICHT übernommen werden: (Tabelle 'settings')

app_name
default_date_format
default_theme
default_time_format
er_level
fingerprint_with_ip_octets
operating_system
rename_files_on_upload
sec_anchor
secure_form_module
smart_login
warn_page_leave
wysiwyg_editor
wysiwyg_style

wb_*
wbmailer_*
wb_secform_*
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Fr 11. Jul 2014, 16:35

My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Mo 14. Jul 2014, 17:11

Update:

In ersten groben Zügen funktioniert eine Migration von WB zu BC mit folgenden Einschränkungen:
  • Es ist möglich, Module von der Migration auszunehmen, zu denen noch Seiten existieren. Diese Seiten werden NICHT aussortiert. Sie sind nach der Migration einfach leer.
  • Es wird versucht, Tabellen und Module abzugleichen. Das ist aber nicht in allen Fällen erfolgreich. Es ist also möglich, einen unbrauchbaren Datenexport auszuführen.
  • Das Seitenverzeichnis heißt in WB standardmäßig "pages", in BC "page". Die Einstellung wird von WB übernommen, das heißt, das vorhandene BC-Verzeichnis "page" wird nach dem Datenimport nicht mehr benutzt. Es wird aber auch nicht automatisch entfernt.
  • Templates _können_ aus WB übernommen werden, allerdings ist die Verwendung nicht unproblematisch, da wir Funktionen wie register_frontend_modfiles() ersatzlos gestrichen haben. Dadurch wird z.B. kein JavaScript geladen. Einen Templatekonverter einzubauen ist denkbar, aber ich stelle es erst einmal zurück.
Testbasis:

Lokale WB 2.8.3 Installation auf XAMPP mit Template "simple" und folgenden Zusatzmodulen:

wbstats
wbProfiles
wblib
topics
practical_module_functions
perma_link
pagecloner
output_filter
outputfilter_dashboard
mpform
manual
modulelist
lib_jquery
jsadmin
kit_tools
libraryadmin
flex_table
form
download_gallery
fckeditor
dwoo
droplets_extension
dbconnect_le
contents
code2
ckeditor
code
addon_monitor
x_cform
minislider
bakery
Brax_HighSlide_Gallery
news_img
anynews
blog_menu
foldergallery

Davon wurden aber nur übernommen (d.h. in BC manuell nachinstalliert):

Brax_HighSlide_Gallery
form
minislider
news_img
wbProfiles (inkl. wblib und LibraryAdmin)
foldergallery

Ergebnis:

(Anmerkung: Verzeichnisse "pages" und "media" von Hand kopiert.)
  • Im Template "simple" funktioniert wie o.g. kein JS, daher funktionieren z.B. Brax und Form nicht.
  • Nach Umstellung auf "mojito" funktionieren Form (nur teilw.) und Minislider, aber nicht "Brax".
  • Modul "wrapper" braucht eine kleine Korrektur.
  • Modul "foldergallery" (Version 1.34) funktioniert nicht, das ist aber schon bekannt.
  • Modul "wbProfiles" wirft Fehler wg. der mysql_* Funktionen in der wbDatabase, ist mir auch schon bekannt und ist bei abgeschalteten PHP-Fehlerberichten auch nicht zu sehen.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Mo 14. Jul 2014, 18:16

Hab grad festgestellt das "Brax" in WB auch nicht funktioniert. Ist aber auch ein geändertes Modul.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 3952
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Migration von WB

Beitrag von shadowcat » Di 15. Jul 2014, 14:10

Hier mal ein allererster, experimenteller Wurf des Migrationstools. Einfach mal auf dem Server entpacken und aufrufen.

WICHTIG!

Der WB-Installation passiert nichts, sie wird nur gelesen. Die BC-Installation kann jedoch unter Umständen vollständig zerstört werden!

Ich schlage folgendes Vorgehen vor:

* Als Quelle eine WB Portable benutzen.
* In diese Portable eine frische BC-Installation machen.
* DAS ERGEBNIS WEGSICHERN. (ZIP)
* Migrationstool aufrufen und durchsteppen.
* Gucken, wie die BC-Installation aussieht.

Nicht vergessen, daß "media" und "pages" von Hand kopiert werden müssen. Fehlende Module müssen manuell in BC nachinstalliert werden.
Dateianhänge
WB2BC_v0.1.zip
(39.56 KiB) 76-mal heruntergeladen
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Antworten