Wordpress Datenbank Wahnsinn
database, php, post-to-mma, sql, wordpress1 Comment »Ich liebe Wordpress.
Aber die Datenbank-Struktur von Wordpress, die hasse ich. Die ist soooo weit von relational entfernt, das ist unglaublich. Da kriegen Datenbank-Profis schon Kopfweh wenn sie sich nur auf 100 Schritte nähern.
Heute wollt ich z.B. User aus einer Wordpress-Installation in eine andere Übernehmen. Schaut auf den ersten blick ganz einfach aus: Inhalt der Tabelle wp_user kopieren in die Datenbank des anderen Wordpress. Dort ist der “table_prefix” anders eingestellt, drum heisst die Tabelle dort wp_kids_users.
Auf den zweiten Blick seh ich: ich muss auch wp_usermeta kopieren auf wp_kids_usermeta.
Und dann kommt das dicke Ende: Mit der Fehlermeldung “You do not have sufficient permissions to access this page” bzw. “Ihre Zugriffsrechte reichen nicht aus, um diese Seite zu anzuzeigen.” verweigert das Wordpress-Backend den Zugriff.
Der Grund: In der Tabelle wp_kids_usermeta wird der Tabellen-Prefix auch verwendet:
Nach Schlüssel sortieren:
| umeta_id | user_id | meta_key | meta_value |
| 1 | 1 | nickname | bjelli |
| 2 | 1 | rich_editing | true |
| 3 | 1 | wp_kids_capabilities | a:1:{s:13:”administrator”;b:1;} |
| 4 | 1 | wp_kids_user_level | 10 |
| 5 | 1 | first_name | Brigitte |
| 6 | 1 | last_name | Jellinek |
D.h. bei Veränderung des Tabellennamens muss auch der Inhalt der Tabelle verändert werden, damit Wordpress weiterhin funktioniert:
UPDATE {$newprefix}usermeta SET meta_key = “{$newprefix}capabilities” WHERE meta_key = “{$oldprefix}capabilities”;
UPDATE {$newprefix}usermeta SET meta_key = “{$newprefix}user_level” WHERE meta_key = “{$oldprefix}user_level”;
Liebe Leute: nehmt Euch Wiordpress nicht als Vorbild für Datenbank-Design, macht das nicht nach. Schön ist anders.

Ich hab Blogger jetzt viele Jahre lang benutzt (2002-2007) und war immer zufrieden. Die Oberfläche ist super, die Funktionalität passt. Aber: sie wurden von Google aufgekauft. Und ich will nicht mein ganzes Leben in die Hände von Google legen. Als Suchmaschine: gerne. Aber Mail, Blog, Kalender, … alles über Google? Nein.
Recent Comments