Problem mit Datenbankimport (WP)

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Problem mit Datenbankimport (WP)

Post by Sandra »

Guten Morgen allerseits,

ich versuche gerade, eine Wordpress-Datenbank zu importieren, aber die Kommentare kommen nicht an. Was mache ich falsch?

Gruß
Sandra
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Problem mit Datenbankimport (WP)

Post by garvinhicking »

Hallo Sandra!

Kommen die Kommentare überhaupt nicht an, oder evtl. nur defekt?

Kennst Du dich in phpMyAdmin etwas aus? Kannst Du prüfen ob in der serendipity_comments Tabelle Einträge landen?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Oh, danke für die schnelle Antwort. In der Tabelle serendipity_comments sind 0 Zeilen. Da kommt leider gar nichts an.

Ich hatte die Kommentare schon importiert, aber mit dem falschen Zeichensatz. Deswegen habe ich die Tabelle(n) nochmal geleert. Und jetzt klappt das Importieren nicht mehr.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Jetzt klappt das gesamte Importieren nicht mehr? Auch nicht mit den alten Zeichensatzeinstellungen?

Was genau hast Du geändert seit es zuletzt klappte, welche Tabellen hast Du berarbeitet? Hast Du evtl. auch was an den Original-WP-Tabellen geändert?

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Ich habe alle möglichen Kombinationen von Blog UTF/ISO und Import UTF/ISO ausprobiert. Bei beidem auf UTF werden alle Beiträge mit richtigem Zeichensatz importiert. Bei beidem auf ISO ist der Zeichensatz der Beiträge falsch und die Kommentare fehlen.

Jetzt fällt mir gerade ein, was ich in der Zwischenzeit verändert habe... Ich habe in der WP-Tabelle den Inhalt von comment_author_IP und comment_agent bei allen Kommentaren mit leerer Zeichenkette ersetzt. :oops:

Gruß
Sandra
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Also wie jetzt: Klappt der Import noch, oder nicht mehr? :-)

Auf welche Sprache und welchen Zeichensatz ist dein Serendipity eingestellt? Und welche PHP-Version kommt auf deinem Webserver zum Einsatz?

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Also wie jetzt: Klappt der Import noch, oder nicht mehr? :)
Nein, im Moment nicht. Ich bekomme alle Beiträge aber 0 Kommentare.

Serendipity ist auf Deutsch und UTF-8 eingestellt und läuft mit PHP 4.4.4 und MySQL 4.0.

Gruß
Sandra
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Also wenn Du den Import-Vorgang wiederholst werden zwar die Einträge nochmal alle importiert, aber keine Kommentare? Oder werden WEDER Einträge noch Kommentare dann importiert?

Deine WordPress 'comments' ist aber noch vorhanden und enthält Einträge? Nicht dass Du aus versehen anstelle der s9y Tabellen die WP Tabellen geleert hast...

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Hi!

Ich bekomme alle Beiträge aber 0 Kommentare. Jedes Mal. Ich finde keine Kombination von UTF / ISO / html-Instanzen konvertieren, wo ich beides bekommen würde. Die Tabelle serendipity_entries enthält alle Beiträge und die serendipity_comments bleibt leer.

Die wp_comments enthält aktuell noch alle 7.224 Kommentare. Die habe ich nicht gelöscht :). Vielleicht sollte ich einfach einen CSV-Export machen, umsortieren und direkt in die Datenbank importieren. Das müsste doch gehen, oder?

Gruß
Sandra
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Ich vermute Du benutzt Serendipity 1.1.

Du könntest mal probieren die Datei include/admin/importers/wordpress.inc.php mit einem editor zu öffnen und dann folgenden Block zu suchen:

Code: Select all

/* Comments */
$res = @$this->nativeQuery("SELECT * FROM {$this->data['prefix']}comments;", $wpdb);
if ( !$res ) {
    return sprintf(COULDNT_SELECT_COMMENT_INFO, mysql_error($wpdb));
}

while ( $a = mysql_fetch_assoc($res) ) {
    foreach ( $entries as $entry ) {
        if ( $entry['ID'] == $a['comment_post_ID'] ) {
            $comment = array('entry_id ' => $entry['entryid'],
                             'parent_id' => 0,
                             'timestamp' => strtotime($a['comment_date']),
                             'author'    => $a['comment_author'],
                             'email'     => $a['comment_author_email'],
                             'url'       => $a['comment_author_url'],
                             'ip'        => $a['comment_author_IP'],
                             'status'    => (empty($a['comment_approved']) || $a['comment_approved'] == '1') ? 'approved' : 'pending',
                             'subscribed'=> 'false',
                             'body'      => $a['comment_content'],
                             'type'      => 'NORMAL');

            serendipity_db_insert('comments', $this->strtrRecursive($comment));
            if ($comment['status'] == 'approved') {
                $cid = serendipity_db_insert_id('comments', 'id');
                serendipity_approveComment($cid, $entry['entryid'], true);
            }
        }
    }
}
Ändere das mal ab in folgendes:

Code: Select all

/* Comments */
$res = @$this->nativeQuery("SELECT * FROM {$this->data['prefix']}comments;", $wpdb);
if ( !$res ) {
    return sprintf(COULDNT_SELECT_COMMENT_INFO, mysql_error($wpdb));
}

echo "Prüfe Einträge:<br />\n";
foreach ( $entries as $entry ) {
    echo '#' . $entry['ID'] . " ...<br />\n";
}

echo "Hole Kommentare...<br />\n";
while ( $a = mysql_fetch_assoc($res) ) {
    echo "Kommentar: <pre>" . print_r($a, true) . "</pre><br />\n";
    foreach ( $entries as $entry ) {
        if ( $entry['ID'] == $a['comment_post_ID'] ) {
            $comment = array('entry_id ' => $entry['entryid'],
                             'parent_id' => 0,
                             'timestamp' => strtotime($a['comment_date']),
                             'author'    => $a['comment_author'],
                             'email'     => $a['comment_author_email'],
                             'url'       => $a['comment_author_url'],
                             'ip'        => $a['comment_author_IP'],
                             'status'    => (empty($a['comment_approved']) || $a['comment_approved'] == '1') ? 'approved' : 'pending',
                             'subscribed'=> 'false',
                             'body'      => $a['comment_content'],
                             'type'      => 'NORMAL');
            echo "Füge ein: <pre>" . print_r($comment, true) . "</pre><br />\n";
            serendipity_db_insert('comments', $this->strtrRecursive($comment));
            if ($comment['status'] == 'approved') {
                $cid = serendipity_db_insert_id('comments', 'id');
                serendipity_approveComment($cid, $entry['entryid'], true);
            }
        }
    }
}
Wenn Du nun importierst solltest Du einige Zusatzangaben dargestellt sehen, diese Ausgaben würde ich ausschnittsweise mal benötigen um das Problem weitergehend analysieren zu können?

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Hi,

okay ich habe die Datei geändert. Ich bekomme nur die Meldung "Starte Import-Vorgang..." und warte eine ganze Weile aber da passiert nichts. Ich hätte jetzt eine Fehlermeldung erwartet :?

Gruß
Sandra
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Wieviele Einträge hast Du? Bei 7000 Kommentaren kann es evtl. eine Weile dauern, da pro Kommentar einiges an HTML-Ausgabe gemacht wird. Es kann daher gut 3-4MB an Daten da zu Dir übertragen werden...

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Könnte Dir ansonsten auch anbieten, entweder den Importvorgang auf deiner Installation vorzunehmen - dann bräuchte ich aber übergangsweise FTP-Zugriff zum Blog.

Alternativ kannst Du mir auch einen SQL-Dump deiner WP-Tabellen (categories, posts, post2cat, comments) schicken, dann kann ich das in meinem Testblog durchexerzieren und Dir danach einen s9y SQL Datenbankdump geben?

Tut mir leid dass es da so Probleme gibt, ich verstehe noch nicht ganz woran der Kommentarimport scheitern könnte - am wahrscheinlichsten ist, dass er die Entry-ID nicht auf die Kommentar-Entry-ID zuordnen kann...

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Sandra
Regular
Posts: 21
Joined: Tue Feb 20, 2007 9:47 am
Contact:

Post by Sandra »

Hi,

vielen Dank, ich wollte aber wirklich nicht so viel Mühe machen. Ich bin sicher, der Fehler liegt bei mir, weil die Kommentare ja schon mal da waren.

Ich schicke die Zugangsdaten per PM.

Danke & Gruß
Sandra
Post Reply